This notebook is for the acoustic analysis of the falling diphthongs in the standard Mandarin with the approach GAMMs.

#install.packages('rmarkdown')
# Importation des emballages 
#install.packages("itsadug")
library(nlme)
library(ggplot2)
library(mgcv)
## This is mgcv 1.8-33. For overview type 'help("mgcv-package")'.
library(itsadug)
## Loading required package: plotfunctions
## 
## Attaching package: 'plotfunctions'
## The following object is masked from 'package:ggplot2':
## 
##     alpha
## Loaded package itsadug 2.4 (see 'help("itsadug")' ).
source("gamm_hacks.r")
#install.packages("tidyverse")
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✓ tibble  3.1.0     ✓ dplyr   1.0.5
## ✓ tidyr   1.1.3     ✓ stringr 1.4.0
## ✓ readr   1.4.0     ✓ forcats 0.5.1
## ✓ purrr   0.3.4
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x plotfunctions::alpha() masks ggplot2::alpha()
## x dplyr::collapse()      masks nlme::collapse()
## x dplyr::filter()        masks stats::filter()
## x dplyr::lag()           masks stats::lag()

After the importation of the packages, let’s read the data.

# Importation des données 

au <- read.table(file="au0a.tsv",sep="\t", fileEncoding = 'UTF-16', header = TRUE)
ai <- read.table(file="ai0a.tsv",sep="\t", fileEncoding = 'UTF-16', header = TRUE)
ei <- read.table(file="ei0a.tsv",sep="\t", fileEncoding = 'UTF-16', header = TRUE)
ou <- read.table(file="ou0a.tsv",sep="\t", fileEncoding = 'UTF-16', header = TRUE)

Change of the nature of the variables in the dataset.

The criterion is that all the numerical variables are numerated and the string varibles are factored.

1 /ai/

Lets start from /ai/:

ai$sexe<-as.factor(ai$sexe)
ai$ton<-as.factor(ai$ton)
ai$pow<-as.factor(ai$pow)
ai$contexte.D<-as.factor(ai$contexte.D)
ai$contexte.G<-as.factor(ai$contexte.G)

ai$f1<-as.numeric(ai$f1)
## Warning: NAs introduced by coercion
ai$f2<-as.numeric(ai$f2)
## Warning: NAs introduced by coercion
ai$f3<-as.numeric(ai$f3)
## Warning: NAs introduced by coercion
ai$f0<-as.numeric(ai$f0)
## Warning: NAs introduced by coercion
head(ai)
##   numero sexe locuteur diphtongue ton pow contexte.G contexte.D duree.ms.
## 1      1    F     FS11         ai   4   f          h          0  102.6625
## 2      1    F     FS11         ai   4   f          h          0  102.6625
## 3      1    F     FS11         ai   4   f          h          0  102.6625
## 4      1    F     FS11         ai   4   f          h          0  102.6625
## 5      1    F     FS11         ai   4   f          h          0  102.6625
## 6      1    F     FS11         ai   4   f          h          0  102.6625
##   measurement.no       f1       f2       f3       f0
## 1              0 770.9403 1592.367 2791.365 242.7606
## 2              1 789.5770 1654.538 2661.433 232.8865
## 3              2 790.5264 1676.141 2643.341 228.2137
## 4              3 792.7979 1771.876 2587.896 224.4104
## 5              4 786.4961 1814.919 2436.698 219.7656
## 6              5 760.0966 1827.338 2542.548 214.1222

In the dataset we can see the number of the data numero, the gender sexe, the speaker locuteur, the tone ton, the position in the word pow, the context before and after this diphthong contexte.G / contexte.D, the duration of the diphthongs duree.ms. and f0, f1, f2, f3 trajectories, each of them represented by 11 measurements taken at equal intervals (at 0%, 10%, 20%, . . . , 100%).

# Regroupement par les facteurs
ai.mas <- droplevels(subset(ai,sexe=="M"))
ai.fem <- droplevels(subset(ai,sexe=="F"))

1.1 Masculin

1.1.1 F1

1.1.1.1 Basic models

Then the trajectories of f1 in different tones with regard of the sexes and the durations.

ggplot(ai.mas, aes(x=measurement.no, y=f1, group=numero,
                     alpha=duree.ms.)) +
  facet_grid(~ton) + geom_line()
## Warning: Removed 28 row(s) containing missing values (geom_path).

ggplot(ai.fem, aes(x=measurement.no, y=f1, group=numero,
                     alpha=duree.ms.)) +
  facet_grid(~ton) + geom_line()
## Warning: Removed 25 row(s) containing missing values (geom_path).

Then the first model with a basic smooth of tone 1 and difference smooths.

ai.mas$ton.ord <- as.ordered(ai.mas$ton)
contrasts(ai.mas$ton.ord) <- "contr.treatment"
ai.mas.gam.diff <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                        s(measurement.no, by=ton.ord, bs="cr"),
                      data=ai.mas, method="ML")
summary.coefs(ai.mas.gam.diff)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   508.92      20.76  24.514  < 2e-16 ***
## ton.ord2      120.43      22.33   5.393 8.47e-08 ***
## ton.ord3      173.89      23.07   7.536 1.01e-13 ***
## ton.ord4      109.93      21.51   5.110 3.81e-07 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F  p-value    
## s(measurement.no)          4.434  5.392  5.263 5.67e-05 ***
## s(measurement.no):ton.ord2 1.017  1.032 10.413  0.00111 ** 
## s(measurement.no):ton.ord3 1.001  1.002  4.728  0.02980 *  
## s(measurement.no):ton.ord4 3.570  4.385  7.968 1.47e-06 ***

Then the plots of predictions and difference smooth.

plot_smooth(ai.mas.gam.diff, view="measurement.no",
            plot_all="ton.ord", rug=F)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(ai.mas.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("1","2")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  0.000000 - 7.575758
plot_diff(ai.mas.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","3")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  2.323232 - 10.000000
plot_diff(ai.mas.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("3","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  0.000000 - 2.929293
##  6.969697 - 10.000000

The model that accounts for the influence of duree.ms. on the trajectories.

ai.mas.gam.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(duree.ms., bs="cr") +
                              ti(measurement.no, duree.ms.) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=ai.mas, method="ML")
summary.coefs(ai.mas.gam.dur)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   521.48      20.47  25.471  < 2e-16 ***
## ton.ord2       96.33      22.45   4.291 1.94e-05 ***
## ton.ord3      174.32      22.42   7.777 1.74e-14 ***
## ton.ord4       97.59      21.32   4.578 5.25e-06 ***
## 
## Approximate significance of smooth terms:
##                                edf Ref.df     F  p-value    
## s(measurement.no)            4.526  5.458 2.689   0.0153 *  
## s(duree.ms.)                 5.581  6.507 5.202 3.61e-05 ***
## ti(measurement.no,duree.ms.) 7.258  9.082 4.050 3.73e-05 ***
## s(measurement.no):ton.ord2   2.838  3.498 7.788 1.66e-05 ***
## s(measurement.no):ton.ord3   2.279  2.815 3.364   0.0173 *  
## s(measurement.no):ton.ord4   4.009  4.879 6.286 1.52e-05 ***

The plots with regard the durations.

plot_smooth(ai.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 170. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 80. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ai.mas.gam.dur, view=c("measurement.no","duree.ms."),
        ylim=quantile(ai.mas$duree.ms., c(0.1, 0.9)))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; with 30 values ranging from 80.084553 to 197.994270. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

The model with regard of f0.

ai.mas.gam.f0 <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(f0, bs="cr") +
                              ti(measurement.no, f0) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=ai.mas, method="ML")
summary.coefs(ai.mas.gam.f0)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   515.84      19.38  26.619  < 2e-16 ***
## ton.ord2       98.96      21.39   4.628 4.21e-06 ***
## ton.ord3      133.59      22.60   5.912 4.69e-09 ***
## ton.ord4       99.55      19.87   5.009 6.49e-07 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df     F  p-value    
## s(measurement.no)          5.043  6.028 3.347 0.002781 ** 
## s(f0)                      2.675  3.219 6.283 0.000272 ***
## ti(measurement.no,f0)      3.877  4.994 2.958 0.011798 *  
## s(measurement.no):ton.ord2 3.114  3.839 7.162 2.42e-05 ***
## s(measurement.no):ton.ord3 2.262  2.803 6.325 0.000460 ***
## s(measurement.no):ton.ord4 4.213  5.118 8.474  < 2e-16 ***

The plot of such model.

plot_smooth(ai.mas.gam.f0, view="measurement.no", cond=list(f0=100),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 100. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.mas.gam.f0, view="measurement.no", cond=list(f0=120),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 120. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.mas.gam.f0, view="measurement.no", cond=list(f0=140),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 140. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.mas.gam.f0, view="measurement.no", cond=list(f0=180),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.mas.gam.f0, view="measurement.no", cond=list(f0=200),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ai.mas.gam.f0, view=c("measurement.no","f0"),
        ylim=quantile(ai.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 100.125696 to 212.400605. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

1.1.1.2 extra models

 # random intercepts only
ai.mas.gam.int <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                             s(f0, bs="cr") +
                             ti(measurement.no, f0) +
                             s(measurement.no, by=ton.ord, bs="cr") +
                             s(numero, bs="re"),
                         data=ai.mas, method="fREML")
summary.coefs(ai.mas.gam.int)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   456.59      28.69  15.914  < 2e-16 ***
## ton.ord2      102.72      21.32   4.817 1.69e-06 ***
## ton.ord3      134.32      22.50   5.971 3.32e-09 ***
## ton.ord4      106.18      19.91   5.333 1.20e-07 ***
## 
## Approximate significance of smooth terms:
##                               edf Ref.df     F  p-value    
## s(measurement.no)          5.1635  6.149 3.407 0.002221 ** 
## s(f0)                      2.7581  3.306 6.210 0.000251 ***
## ti(measurement.no,f0)      4.2159  5.440 2.916 0.011193 *  
## s(measurement.no):ton.ord2 3.2824  4.041 7.045  1.4e-05 ***
## s(measurement.no):ton.ord3 2.5371  3.148 6.155 0.000312 ***
## s(measurement.no):ton.ord4 4.3255  5.243 8.514  < 2e-16 ***
## s(numero)                  0.8844  1.000 7.653 0.003254 **
plot_smooth(ai.mas.gam.int, view="measurement.no", cond=list(f0=100),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 100. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero)
## 
plot_smooth(ai.mas.gam.int, view="measurement.no", cond=list(f0=120),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 120. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero)
## 
plot_smooth(ai.mas.gam.int, view="measurement.no", cond=list(f0=140),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 140. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero)
## 
plot_smooth(ai.mas.gam.int, view="measurement.no", cond=list(f0=180),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero)
## 
plot_smooth(ai.mas.gam.int, view="measurement.no", cond=list(f0=200),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero)
## 
fvisgam(ai.mas.gam.int, view=c("measurement.no","f0"),
        ylim=quantile(ai.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 100.125696 to 212.400605. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero)
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

# random intercepts + slopes
ai.mas.gam.slope <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                            s(f0, bs="cr") +
                            ti(measurement.no, f0) +
                            s(measurement.no, by=ton.ord, bs="cr") +
                            s(numero, bs="re") +
                            s(numero, measurement.no, bs="re"),
                        data=ai.mas, method="fREML")
summary.coefs(ai.mas.gam.slope)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   455.37      26.73  17.034  < 2e-16 ***
## ton.ord2      103.53      21.30   4.861 1.37e-06 ***
## ton.ord3      134.92      22.47   6.005 2.71e-09 ***
## ton.ord4      106.34      19.85   5.356 1.06e-07 ***
## 
## Approximate significance of smooth terms:
##                                  edf Ref.df      F  p-value    
## s(measurement.no)          5.1531792  6.138  4.177 0.000328 ***
## s(f0)                      2.7569210  3.305  6.089 0.000298 ***
## ti(measurement.no,f0)      4.1973202  5.423  2.853 0.012838 *  
## s(measurement.no):ton.ord2 3.2594077  4.013  6.791 2.16e-05 ***
## s(measurement.no):ton.ord3 2.5316088  3.141  6.168 0.000308 ***
## s(measurement.no):ton.ord4 4.3419115  5.262  8.353  < 2e-16 ***
## s(numero)                  0.0002281  1.000  0.000 0.606058    
## s(numero,measurement.no)   0.9128615  1.000 10.485 0.000716 ***
plot_smooth(ai.mas.gam.slope, view="measurement.no", cond=list(f0=100),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 100. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 
plot_smooth(ai.mas.gam.slope, view="measurement.no", cond=list(f0=120),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 120. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 
plot_smooth(ai.mas.gam.slope, view="measurement.no", cond=list(f0=140),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 140. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 
plot_smooth(ai.mas.gam.slope, view="measurement.no", cond=list(f0=180),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 
plot_smooth(ai.mas.gam.slope, view="measurement.no", cond=list(f0=200),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 
fvisgam(ai.mas.gam.slope, view=c("measurement.no","f0"),
        ylim=quantile(ai.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 100.125696 to 212.400605. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

plot_smooth(ai.mas.gam.slope, view="measurement.no", plot_all="ton.ord",
            rug=F, rm.ranef=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 137.402261031236. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 

#plot_diff(ai.mas.gam.slope, view="measurement.no",
          #comp=list(ton.ord = c("2","4")), rm.ranef=T)
#ai.mas.gam.smooth <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
#                           s(f0, bs="cr") +
#                           ti(measurement.no, f0) +
#                           s(measurement.no, by=ton.ord, bs="cr") +
#                           s(measurement.no, numero, bs="fs", xt="cr", m=1, k=5),
#                         data=ai.mas, method="fREML")
#summary.coefs(ai.mas.gam.smooth)
ai.mas$start.event <- ai.mas$measurement.no==0

r1 <- start_value_rho(ai.mas.gam.f0)

ai.mas.gam.AR <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                            s(f0, bs="cr") +
                            ti(measurement.no, f0) +
                            s(measurement.no, by=ton.ord, bs="cr"),
                       data=ai.mas, method="fREML",
                       rho=r1, AR.start=ai.mas$start.event)
summary.coefs(ai.mas.gam.AR)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   528.66      28.03  18.858  < 2e-16 ***
## ton.ord2       91.67      30.74   2.982 0.002937 ** 
## ton.ord3      115.66      32.36   3.574 0.000369 ***
## ton.ord4       85.10      28.73   2.961 0.003137 ** 
## 
## Approximate significance of smooth terms:
##                              edf Ref.df     F  p-value    
## s(measurement.no)          6.036  7.043 3.644 0.000664 ***
## s(f0)                      1.878  2.303 2.973 0.056214 .  
## ti(measurement.no,f0)      4.238  5.488 2.497 0.025727 *  
## s(measurement.no):ton.ord2 3.946  4.932 6.458 9.21e-06 ***
## s(measurement.no):ton.ord3 3.172  4.024 4.928 0.000613 ***
## s(measurement.no):ton.ord4 5.015  6.080 7.806  < 2e-16 ***
plot_smooth(ai.mas.gam.AR, view="measurement.no", plot_all="ton.ord",
            rug=F, rm.ranef=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 137.402261031236. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(ai.mas.gam.AR, view="measurement.no",
          comp=list(ton.ord = c("2","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 137.402261031236.

## 
## measurement.no window(s) of significant difference(s):
##  0.000000 - 1.515152
plot_smooth(ai.mas.gam.AR, view="measurement.no", cond=list(f0=100),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 100. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.mas.gam.AR, view="measurement.no", cond=list(f0=120),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 120. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.mas.gam.AR, view="measurement.no", cond=list(f0=140),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 140. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.mas.gam.AR, view="measurement.no", cond=list(f0=180),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.mas.gam.AR, view="measurement.no", cond=list(f0=200),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ai.mas.gam.AR, view=c("measurement.no","f0"),
        ylim=quantile(ai.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 100.125696 to 212.400605. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

1.1.1.3 Central portion

We now focus on the central portion of the diphthongs, which means the portions without the inluence of the consonant contexts.

ai.central<-droplevels(subset(ai,measurement.no>=2))
ai.central<-droplevels(subset(ai.central,measurement.no<=8))

ai.central.mas <- droplevels(subset(ai.central,sexe=="M"))
ai.central.fem <- droplevels(subset(ai.central,sexe=="F"))
ai.central.mas$ton.ord <- as.ordered(ai.central.mas$ton)
contrasts(ai.central.mas$ton.ord) <- "contr.treatment"
ai.central.mas.gam.diff <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                        s(measurement.no, by=ton.ord, bs="cr",k=6),
                      data=ai.central.mas, method="ML")
summary.coefs(ai.central.mas.gam.diff)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   472.08      19.51  24.201  < 2e-16 ***
## ton.ord2      171.54      20.96   8.184 1.28e-15 ***
## ton.ord3      225.45      21.68  10.399  < 2e-16 ***
## ton.ord4      187.63      20.19   9.292  < 2e-16 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df     F  p-value    
## s(measurement.no)          2.404  2.924 9.433 1.01e-05 ***
## s(measurement.no):ton.ord2 1.002  1.004 0.147   0.7039    
## s(measurement.no):ton.ord3 1.002  1.005 1.309   0.2530    
## s(measurement.no):ton.ord4 2.529  3.067 2.551   0.0533 .
plot_smooth(ai.central.mas.gam.diff, view="measurement.no",
            plot_all="ton.ord", rug=F)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(ai.central.mas.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("1","2")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  2.000000 - 8.000000
plot_diff(ai.central.mas.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","3")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  2.848485 - 8.000000
plot_diff(ai.central.mas.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("3","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  2.000000 - 3.030303
##  5.818182 - 8.000000
ai.central.mas.gam.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                              s(duree.ms., bs="cr",k=6) +
                              ti(measurement.no, duree.ms.,k=6) +
                              s(measurement.no, by=ton.ord, bs="cr",k=6),
                         data=ai.central.mas, method="ML")
summary.coefs(ai.central.mas.gam.dur)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   483.05      19.43  24.864  < 2e-16 ***
## ton.ord2      153.92      21.26   7.239 1.19e-12 ***
## ton.ord3      225.56      21.26  10.609  < 2e-16 ***
## ton.ord4      175.66      20.20   8.697  < 2e-16 ***
## 
## Approximate significance of smooth terms:
##                                edf Ref.df      F  p-value    
## s(measurement.no)            2.393  2.910 10.314 3.87e-06 ***
## s(duree.ms.)                 4.484  4.852  4.597 0.000297 ***
## ti(measurement.no,duree.ms.) 1.236  1.431  5.669 0.006689 ** 
## s(measurement.no):ton.ord2   1.000  1.000  0.094 0.759550    
## s(measurement.no):ton.ord3   1.000  1.001  1.487 0.223105    
## s(measurement.no):ton.ord4   2.587  3.131  2.965 0.029587 *
plot_smooth(ai.central.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 170. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 80. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ai.central.mas.gam.dur, view=c("measurement.no","duree.ms."),
        ylim=quantile(ai.central.mas$duree.ms., c(0.1, 0.9)))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; with 30 values ranging from 80.084553 to 197.994270. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

ai.central.mas.gam.f0 <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                              s(f0, bs="cr",k=6) +
                              ti(measurement.no, f0,k=6) +
                              s(measurement.no, by=ton.ord, bs="cr",k=6),
                         data=ai.central.mas, method="ML")
summary.coefs(ai.central.mas.gam.f0)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   480.55      18.43  26.068  < 2e-16 ***
## ton.ord2      159.40      20.21   7.886  1.3e-14 ***
## ton.ord3      182.35      21.24   8.583  < 2e-16 ***
## ton.ord4      178.19      18.85   9.455  < 2e-16 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df     F  p-value    
## s(measurement.no)          2.449  2.975 7.785  5.8e-05 ***
## s(f0)                      2.888  3.362 5.997 0.000297 ***
## ti(measurement.no,f0)      1.005  1.010 6.139 0.013357 *  
## s(measurement.no):ton.ord2 1.000  1.000 0.233 0.629530    
## s(measurement.no):ton.ord3 1.000  1.001 0.006 0.938828    
## s(measurement.no):ton.ord4 2.698  3.256 2.878 0.031657 *
plot_smooth(ai.central.mas.gam.f0, view="measurement.no", cond=list(f0=100),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 100. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.mas.gam.f0, view="measurement.no", cond=list(f0=120),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 120. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.mas.gam.f0, view="measurement.no", cond=list(f0=140),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 140. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.mas.gam.f0, view="measurement.no", cond=list(f0=180),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.mas.gam.f0, view="measurement.no", cond=list(f0=200),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ai.central.mas.gam.f0, view=c("measurement.no","f0"),
        ylim=quantile(ai.central.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 99.155553 to 204.798228. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

1.1.2 F2

1.1.2.1 Basic models

Now we look at the trajectories of f2 in different tones with regard of the sexes and the durations.

ggplot(ai.mas, aes(x=measurement.no, y=f2, group=numero,
                     alpha=duree.ms.)) +
  facet_grid(~ton) + geom_line()
## Warning: Removed 28 row(s) containing missing values (geom_path).

ggplot(ai.fem, aes(x=measurement.no, y=f2, group=numero,
                     alpha=duree.ms.)) +
  facet_grid(~ton) + geom_line()
## Warning: Removed 25 row(s) containing missing values (geom_path).

Then we fit the same model with a basic smooth of tone 1 and difference smooths.

ai.mas.f2.gam.diff <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
                        s(measurement.no, by=ton.ord, bs="cr"),
                      data=ai.mas, method="ML")
summary.coefs(ai.mas.f2.gam.diff)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1808.78      25.76  70.213  < 2e-16 ***
## ton.ord2     -190.78      27.71  -6.885 9.73e-12 ***
## ton.ord3     -182.21      28.63  -6.364 2.89e-10 ***
## ton.ord4     -157.18      26.70  -5.887 5.22e-09 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df     F  p-value    
## s(measurement.no)          3.783  4.654 6.929 7.58e-06 ***
## s(measurement.no):ton.ord2 1.000  1.001 0.783    0.376    
## s(measurement.no):ton.ord3 1.001  1.001 0.225    0.635    
## s(measurement.no):ton.ord4 1.004  1.008 0.360    0.550

Now the plots of f2 with different tones.

plot_smooth(ai.mas.f2.gam.diff, view="measurement.no",
            plot_all="ton.ord", rug=F)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(ai.mas.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("1","2")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  0.000000 - 10.000000
plot_diff(ai.mas.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","3")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  0.000000 - 2.020202
plot_diff(ai.mas.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("3","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  5.252525 - 10.000000

The model that accounts for the influence of duree.ms. on the trajectories.

ai.mas.f2.gam.dur <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(duree.ms., bs="cr") +
                              ti(measurement.no, duree.ms.) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=ai.mas, method="ML")
summary.coefs(ai.mas.f2.gam.dur)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1826.36      25.30  72.182  < 2e-16 ***
## ton.ord2     -210.79      27.64  -7.627 5.22e-14 ***
## ton.ord3     -190.56      27.77  -6.861 1.15e-11 ***
## ton.ord4     -178.75      26.32  -6.793 1.81e-11 ***
## 
## Approximate significance of smooth terms:
##                                edf Ref.df      F  p-value    
## s(measurement.no)            3.893  4.783  8.213 6.26e-07 ***
## s(duree.ms.)                 3.903  4.707  5.118 0.000252 ***
## ti(measurement.no,duree.ms.) 2.869  4.012 12.552  < 2e-16 ***
## s(measurement.no):ton.ord2   1.001  1.002  1.332 0.248618    
## s(measurement.no):ton.ord3   1.001  1.003  0.351 0.553691    
## s(measurement.no):ton.ord4   1.001  1.003  0.038 0.847241

The plots with regard the durations.

plot_smooth(ai.mas.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 170. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.mas.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 80. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ai.mas.f2.gam.dur, view=c("measurement.no","duree.ms."),
        ylim=quantile(ai.mas$duree.ms., c(0.1, 0.9)))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; with 30 values ranging from 80.084553 to 197.994270. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

ai.mas.f2.gam.f0 <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(f0, bs="cr") +
                              ti(measurement.no, f0) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=ai.mas, method="ML")
summary.coefs(ai.mas.f2.gam.f0)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1809.15      24.68  73.316  < 2e-16 ***
## ton.ord2     -187.20      27.28  -6.862 1.21e-11 ***
## ton.ord3     -201.12      28.74  -6.999 4.80e-12 ***
## ton.ord4     -156.85      25.33  -6.191 8.79e-10 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df     F  p-value    
## s(measurement.no)          4.100  5.036 9.733  < 2e-16 ***
## s(f0)                      5.833  6.673 5.023 2.82e-05 ***
## ti(measurement.no,f0)      2.307  2.805 2.708   0.0422 *  
## s(measurement.no):ton.ord2 1.001  1.002 0.005   0.9472    
## s(measurement.no):ton.ord3 1.001  1.001 0.034   0.8553    
## s(measurement.no):ton.ord4 1.004  1.008 0.011   0.9373
plot_smooth(ai.mas.f2.gam.f0, view="measurement.no", cond=list(f0=100),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 100. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.mas.f2.gam.f0, view="measurement.no", cond=list(f0=120),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 120. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.mas.f2.gam.f0, view="measurement.no", cond=list(f0=140),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 140. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.mas.f2.gam.f0, view="measurement.no", cond=list(f0=180),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.mas.f2.gam.f0, view="measurement.no", cond=list(f0=200),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ai.mas.f2.gam.f0, view=c("measurement.no","f0"),
        ylim=quantile(ai.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 100.125696 to 212.400605. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

1.1.2.2 extra models

 # random intercepts only
ai.mas.gam.f2.int <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
                             s(f0, bs="cr") +
                             ti(measurement.no, f0) +
                             s(measurement.no, by=ton.ord, bs="cr") +
                             s(numero, bs="re"),
                         data=ai.mas, method="fREML")
summary.coefs(ai.mas.gam.f2.int)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1809.17      24.68  73.315  < 2e-16 ***
## ton.ord2     -187.22      27.28  -6.863 1.20e-11 ***
## ton.ord3     -201.16      28.74  -7.000 4.76e-12 ***
## ton.ord4     -156.88      25.33  -6.192 8.74e-10 ***
## 
## Approximate significance of smooth terms:
##                                  edf Ref.df     F  p-value    
## s(measurement.no)          4.127e+00  5.067 9.697  < 2e-16 ***
## s(f0)                      5.824e+00  6.663 5.023 2.86e-05 ***
## ti(measurement.no,f0)      2.327e+00  2.827 2.705   0.0422 *  
## s(measurement.no):ton.ord2 1.000e+00  1.000 0.005   0.9413    
## s(measurement.no):ton.ord3 1.000e+00  1.000 0.034   0.8542    
## s(measurement.no):ton.ord4 1.000e+00  1.000 0.011   0.9171    
## s(numero)                  2.024e-05  1.000 0.000   0.6922
plot_smooth(ai.mas.gam.f2.int, view="measurement.no", cond=list(f0=100),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 100. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero)
## 
plot_smooth(ai.mas.gam.f2.int, view="measurement.no", cond=list(f0=120),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 120. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero)
## 
plot_smooth(ai.mas.gam.f2.int, view="measurement.no", cond=list(f0=140),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 140. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero)
## 
plot_smooth(ai.mas.gam.f2.int, view="measurement.no", cond=list(f0=180),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero)
## 
plot_smooth(ai.mas.gam.f2.int, view="measurement.no", cond=list(f0=200),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero)
## 
fvisgam(ai.mas.gam.f2.int, view=c("measurement.no","f0"),
        ylim=quantile(ai.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 100.125696 to 212.400605. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero)
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

# random intercepts + slopes
ai.mas.gam.f2.slope <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
                            s(f0, bs="cr") +
                            ti(measurement.no, f0) +
                            s(measurement.no, by=ton.ord, bs="cr") +
                            s(numero, bs="re") +
                            s(numero, measurement.no, bs="re"),
                        data=ai.mas, method="fREML")
summary.coefs(ai.mas.gam.f2.slope)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1783.01      31.63  56.364  < 2e-16 ***
## ton.ord2     -185.70      27.28  -6.806 1.75e-11 ***
## ton.ord3     -200.83      28.72  -6.994 4.98e-12 ***
## ton.ord4     -154.22      25.39  -6.073 1.80e-09 ***
## 
## Approximate significance of smooth terms:
##                                  edf Ref.df     F  p-value    
## s(measurement.no)          4.124e+00  5.064 7.800 4.40e-07 ***
## s(f0)                      5.768e+00  6.604 4.719 6.49e-05 ***
## ti(measurement.no,f0)      2.322e+00  2.822 2.658   0.0451 *  
## s(measurement.no):ton.ord2 1.000e+00  1.000 0.022   0.8812    
## s(measurement.no):ton.ord3 1.000e+00  1.000 0.024   0.8774    
## s(measurement.no):ton.ord4 1.000e+00  1.001 0.033   0.8568    
## s(numero)                  3.609e-05  1.000 0.000   0.4983    
## s(numero,measurement.no)   6.351e-01  1.000 1.741   0.0975 .
plot_smooth(ai.mas.gam.f2.slope, view="measurement.no", cond=list(f0=100),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 100. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 
plot_smooth(ai.mas.gam.f2.slope, view="measurement.no", cond=list(f0=120),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 120. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 
plot_smooth(ai.mas.gam.f2.slope, view="measurement.no", cond=list(f0=140),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 140. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 
plot_smooth(ai.mas.gam.f2.slope, view="measurement.no", cond=list(f0=180),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 
plot_smooth(ai.mas.gam.f2.slope, view="measurement.no", cond=list(f0=200),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 
fvisgam(ai.mas.gam.f2.slope, view=c("measurement.no","f0"),
        ylim=quantile(ai.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 100.125696 to 212.400605. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

plot_smooth(ai.mas.gam.f2.slope, view="measurement.no", plot_all="ton.ord",
            rug=F, rm.ranef=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 137.402261031236. 
##  * numero : numeric predictor; set to the value(s): 164. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 

#plot_diff(ai.mas.gam.slope, view="measurement.no",
          #comp=list(ton.ord = c("2","4")), rm.ranef=T)
#ai.mas.gam.f2.smooth <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
#                           s(f0, bs="cr") +
#                           ti(measurement.no, f0) +
#                           s(measurement.no, by=ton.ord, bs="cr") +
#                           s(measurement.no, numero, bs="fs", xt="cr", m=1, k=5),
#                         data=ai.mas, method="fREML")
#summary.coefs(ai.mas.gam.f2.smooth)

1.1.2.3 Central portion

The central portion:

ai.central.mas.f2.gam.diff <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                        s(measurement.no, by=ton.ord, bs="cr",k=6),
                      data=ai.central.mas, method="ML")
summary.coefs(ai.central.mas.f2.gam.diff)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1797.78      28.10  63.974  < 2e-16 ***
## ton.ord2     -169.65      30.20  -5.618 2.77e-08 ***
## ton.ord3     -154.65      31.23  -4.952 9.20e-07 ***
## ton.ord4     -136.24      29.09  -4.683 3.38e-06 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df     F p-value   
## s(measurement.no)          1.005  1.011 7.229 0.00732 **
## s(measurement.no):ton.ord2 1.001  1.002 0.268 0.60543   
## s(measurement.no):ton.ord3 1.001  1.002 0.035 0.85460   
## s(measurement.no):ton.ord4 1.001  1.003 0.595 0.44147
plot_smooth(ai.central.mas.f2.gam.diff, view="measurement.no",
            plot_all="ton.ord", rug=F)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(ai.central.mas.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("1","2")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  2.000000 - 8.000000
plot_diff(ai.central.mas.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","3")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## Difference is not significant.
plot_diff(ai.central.mas.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("3","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  6.242424 - 8.000000
plot_diff(ai.central.mas.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  3.939394 - 7.454545
ai.central.mas.f2.gam.dur <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                              s(duree.ms., bs="cr",k=6) +
                              ti(measurement.no, duree.ms.,k=6) +
                              s(measurement.no, by=ton.ord, bs="cr",k=6),
                         data=ai.central.mas, method="ML")
summary.coefs(ai.central.mas.f2.gam.dur)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1809.11      27.47  65.867  < 2e-16 ***
## ton.ord2     -178.42      29.78  -5.992 3.30e-09 ***
## ton.ord3     -158.81      30.29  -5.243 2.09e-07 ***
## ton.ord4     -152.09      28.53  -5.331 1.32e-07 ***
## 
## Approximate significance of smooth terms:
##                                edf Ref.df     F  p-value    
## s(measurement.no)            1.106  1.204 6.368  0.01168 *  
## s(duree.ms.)                 2.613  3.155 4.432  0.00315 ** 
## ti(measurement.no,duree.ms.) 3.274  4.240 7.847 2.48e-06 ***
## s(measurement.no):ton.ord2   1.001  1.002 1.433  0.23173    
## s(measurement.no):ton.ord3   1.001  1.002 0.023  0.88142    
## s(measurement.no):ton.ord4   1.002  1.003 0.342  0.56017
plot_smooth(ai.central.mas.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 170. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.mas.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 80. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ai.central.mas.f2.gam.dur, view=c("measurement.no","duree.ms."),
        ylim=quantile(ai.central.mas$duree.ms., c(0.1, 0.9)))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; with 30 values ranging from 80.084553 to 197.994270. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

ai.central.mas.f2.gam.f0 <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                              s(f0, bs="cr",k=6) +
                              ti(measurement.no, f0,k=6) +
                              s(measurement.no, by=ton.ord, bs="cr",k=6),
                         data=ai.central.mas, method="ML")
summary.coefs(ai.central.mas.f2.gam.f0)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1808.72      25.82  70.057  < 2e-16 ***
## ton.ord2     -183.71      28.33  -6.485 1.74e-10 ***
## ton.ord3     -198.13      29.76  -6.658 5.86e-11 ***
## ton.ord4     -147.99      26.51  -5.582 3.48e-08 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df     F  p-value    
## s(measurement.no)          1.001  1.002 9.506  0.00212 ** 
## s(f0)                      4.105  4.579 7.115 2.97e-06 ***
## ti(measurement.no,f0)      5.049  5.936 5.348 2.37e-05 ***
## s(measurement.no):ton.ord2 1.001  1.001 0.421  0.51700    
## s(measurement.no):ton.ord3 1.001  1.001 0.465  0.49561    
## s(measurement.no):ton.ord4 1.001  1.001 0.610  0.43499
plot_smooth(ai.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=100),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 100. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=120),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 120. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=140),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 140. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=180),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=200),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ai.central.mas.f2.gam.f0, view=c("measurement.no","f0"),
        ylim=quantile(ai.central.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 99.155553 to 204.798228. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

1.2 Féminin

1.2.1 F1

1.2.1.1 Basic models

We now switch to the data of feminin subjects.

The first model with a basic smooth of tone 1 and difference smooths.

ai.fem$ton.ord <- as.ordered(ai.fem$ton)
contrasts(ai.fem$ton.ord) <- "contr.treatment"
ai.fem.gam.diff <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                        s(measurement.no, by=ton.ord, bs="cr"),
                      data=ai.fem, method="ML")
summary.coefs(ai.fem.gam.diff)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  727.300     10.502  69.251  < 2e-16 ***
## ton.ord2      41.824     12.745   3.282  0.00106 ** 
## ton.ord3       9.285     13.129   0.707  0.47957    
## ton.ord4      -4.129     11.138  -0.371  0.71090    
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F p-value    
## s(measurement.no)          4.990  6.014 22.139 < 2e-16 ***
## s(measurement.no):ton.ord2 1.976  2.459  3.589 0.02225 *  
## s(measurement.no):ton.ord3 1.004  1.008  4.710 0.03005 *  
## s(measurement.no):ton.ord4 2.916  3.598  4.183 0.00373 **

Then the plots of predictions and difference smooth.

plot_smooth(ai.fem.gam.diff, view="measurement.no",
            plot_all="ton.ord", rug=F)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(ai.fem.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("1","2")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  0.000000 - 4.343434
plot_diff(ai.fem.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","3")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  0.000000 - 2.323232
##  7.777778 - 10.000000
plot_diff(ai.fem.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("3","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  0.000000 - 2.828283
##  6.161616 - 7.676768

The model that accounts for the influence of duree.ms. on the trajectories.

ai.fem.gam.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(duree.ms., bs="cr") +
                              ti(measurement.no, duree.ms.) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=ai.fem, method="ML")
summary.coefs(ai.fem.gam.dur)
## Parametric coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 725.48603   10.51394  69.002  < 2e-16 ***
## ton.ord2     38.51010   12.39140   3.108  0.00193 ** 
## ton.ord3      9.42465   13.15220   0.717  0.47377    
## ton.ord4      0.02272   11.37780   0.002  0.99841    
## 
## Approximate significance of smooth terms:
##                                edf Ref.df      F p-value    
## s(measurement.no)            5.275  6.330 25.533 < 2e-16 ***
## s(duree.ms.)                 7.132  8.041  6.159 < 2e-16 ***
## ti(measurement.no,duree.ms.) 8.571 10.747  5.436 < 2e-16 ***
## s(measurement.no):ton.ord2   2.039  2.534  3.642 0.01899 *  
## s(measurement.no):ton.ord3   1.007  1.012 10.009 0.00158 ** 
## s(measurement.no):ton.ord4   2.434  3.015  2.159 0.09079 .

The plots with regard the durations.

plot_smooth(ai.fem.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 170. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.fem.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 80. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ai.fem.gam.dur, view=c("measurement.no","duree.ms."),
        ylim=quantile(ai.fem$duree.ms., c(0.1, 0.9)))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; with 30 values ranging from 89.970028 to 186.666330. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

The model with regard of f0.

ai.fem.gam.f0 <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(f0, bs="cr") +
                              ti(measurement.no, f0) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=ai.fem, method="ML")
summary.coefs(ai.fem.gam.f0)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  726.023     10.603  68.474   <2e-16 ***
## ton.ord2      36.953     14.222   2.598   0.0095 ** 
## ton.ord3      15.256     14.126   1.080   0.2804    
## ton.ord4      -2.092     11.020  -0.190   0.8494    
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F  p-value    
## s(measurement.no)          5.092  6.142 32.725  < 2e-16 ***
## s(f0)                      1.000  1.000  1.679 0.195397    
## ti(measurement.no,f0)      2.285  2.770  5.741 0.000985 ***
## s(measurement.no):ton.ord2 1.000  1.001  0.466 0.495028    
## s(measurement.no):ton.ord3 1.000  1.001  0.245 0.620400    
## s(measurement.no):ton.ord4 2.564  3.184  3.425 0.015002 *

The plot of such model.

plot_smooth(ai.fem.gam.f0, view="measurement.no", cond=list(f0=180),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.fem.gam.f0, view="measurement.no", cond=list(f0=200),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.fem.gam.f0, view="measurement.no", cond=list(f0=220),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 220. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.fem.gam.f0, view="measurement.no", cond=list(f0=240),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 240. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.fem.gam.f0, view="measurement.no", cond=list(f0=260),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 260. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ai.fem.gam.f0, view=c("measurement.no","f0"),
        ylim=quantile(ai.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 159.611858 to 275.883293. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

1.2.1.2 extra models

 # random intercepts only
ai.fem.gam.int <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                             s(f0, bs="cr") +
                             ti(measurement.no, f0) +
                             s(measurement.no, by=ton.ord, bs="cr") +
                             s(numero, bs="re"),
                         data=ai.fem, method="fREML")
summary.coefs(ai.fem.gam.int)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  748.285     11.493  65.107   <2e-16 ***
## ton.ord2      35.242     14.163   2.488    0.013 *  
## ton.ord3      21.055     14.126   1.490    0.136    
## ton.ord4       1.546     11.010   0.140    0.888    
## 
## Approximate significance of smooth terms:
##                               edf Ref.df      F  p-value    
## s(measurement.no)          5.1331  6.184 32.528  < 2e-16 ***
## s(f0)                      1.0000  1.000  1.098  0.29484    
## ti(measurement.no,f0)      3.5799  4.896  3.511  0.00416 ** 
## s(measurement.no):ton.ord2 1.0001  1.000  0.150  0.69866    
## s(measurement.no):ton.ord3 1.0003  1.001  0.124  0.72537    
## s(measurement.no):ton.ord4 2.6626  3.295  3.625  0.01065 *  
## s(numero)                  0.9609  1.000 24.572 7.72e-07 ***
plot_smooth(ai.fem.gam.int, view="measurement.no", cond=list(f0=100),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 100. 
##  * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero)
## 
plot_smooth(ai.fem.gam.int, view="measurement.no", cond=list(f0=120),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 120. 
##  * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero)
## 
plot_smooth(ai.fem.gam.int, view="measurement.no", cond=list(f0=140),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 140. 
##  * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero)
## 
plot_smooth(ai.fem.gam.int, view="measurement.no", cond=list(f0=180),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero)
## 
plot_smooth(ai.fem.gam.int, view="measurement.no", cond=list(f0=200),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero)
## 
fvisgam(ai.fem.gam.int, view=c("measurement.no","f0"),
        ylim=quantile(ai.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 100.125696 to 212.400605. 
##  * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero)
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

# random intercepts + slopes
ai.fem.gam.slope <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                            s(f0, bs="cr") +
                            ti(measurement.no, f0) +
                            s(measurement.no, by=ton.ord, bs="cr") +
                            s(numero, bs="re") +
                            s(numero, measurement.no, bs="re"),
                        data=ai.fem, method="fREML")
summary.coefs(ai.fem.gam.slope)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  747.286     11.407  65.514   <2e-16 ***
## ton.ord2      36.487     14.158   2.577   0.0101 *  
## ton.ord3      21.379     14.114   1.515   0.1301    
## ton.ord4       1.958     11.003   0.178   0.8588    
## 
## Approximate significance of smooth terms:
##                               edf Ref.df      F p-value    
## s(measurement.no)          5.1283  6.178 30.085 < 2e-16 ***
## s(f0)                      1.0001  1.000  1.323 0.25034    
## ti(measurement.no,f0)      3.4752  4.757  3.598 0.00400 ** 
## s(measurement.no):ton.ord2 1.0002  1.000  0.156 0.69325    
## s(measurement.no):ton.ord3 1.0003  1.001  0.034 0.85413    
## s(measurement.no):ton.ord4 2.6666  3.300  3.757 0.00877 ** 
## s(numero)                  0.6759  1.000  5.927 0.07910 .  
## s(numero,measurement.no)   0.8148  1.000 12.630 0.02023 *
plot_smooth(ai.fem.gam.slope, view="measurement.no", cond=list(f0=100),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 100. 
##  * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 
plot_smooth(ai.fem.gam.slope, view="measurement.no", cond=list(f0=120),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 120. 
##  * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 
plot_smooth(ai.fem.gam.slope, view="measurement.no", cond=list(f0=140),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 140. 
##  * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 
plot_smooth(ai.fem.gam.slope, view="measurement.no", cond=list(f0=180),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 
plot_smooth(ai.fem.gam.slope, view="measurement.no", cond=list(f0=200),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 
fvisgam(ai.fem.gam.slope, view=c("measurement.no","f0"),
        ylim=quantile(ai.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 159.611858 to 275.883293. 
##  * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

plot_smooth(ai.fem.gam.slope, view="measurement.no", plot_all="ton.ord",
            rug=F, rm.ranef=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 203.561992329367. 
##  * numero : numeric predictor; set to the value(s): 57. (Might be canceled as random effect, check below.) 
##  * NOTE : The following random effects columns are canceled: s(numero),s(numero,measurement.no)
## 

#plot_diff(ai.mas.gam.slope, view="measurement.no",
          #comp=list(ton.ord = c("2","4")), rm.ranef=T)
#ai.fem.gam.smooth <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
#                           s(f0, bs="cr") +
#                           ti(measurement.no, f0) +
#                           s(measurement.no, by=ton.ord, bs="cr") +
#                           s(measurement.no, numero, bs="fs", xt="cr", m=1, k=5),
#                         data=ai.fem, method="fREML")
#summary.coefs(ai.fem.gam.smooth)
ai.fem$start.event <- ai.fem$measurement.no==0

r1 <- start_value_rho(ai.fem.gam.f0)

ai.fem.gam.AR <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                            s(f0, bs="cr") +
                            ti(measurement.no, f0) +
                            s(measurement.no, by=ton.ord, bs="cr"),
                       data=ai.fem, method="fREML",
                       rho=r1, AR.start=ai.fem$start.event)
summary.coefs(ai.fem.gam.AR)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  730.847     17.036  42.901   <2e-16 ***
## ton.ord2      44.139     22.273   1.982   0.0478 *  
## ton.ord3       8.903     22.447   0.397   0.6917    
## ton.ord4      -4.354     17.857  -0.244   0.8074    
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F  p-value    
## s(measurement.no)          6.289  7.490 24.971  < 2e-16 ***
## s(f0)                      1.000  1.000  0.669 0.413682    
## ti(measurement.no,f0)      4.329  5.818  4.314 0.000372 ***
## s(measurement.no):ton.ord2 1.000  1.000  0.805 0.369761    
## s(measurement.no):ton.ord3 1.000  1.001  0.385 0.535005    
## s(measurement.no):ton.ord4 3.102  3.972  3.223 0.013040 *
plot_smooth(ai.fem.gam.AR, view="measurement.no", plot_all="ton.ord",
            rug=F, rm.ranef=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 203.561992329367. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(ai.fem.gam.AR, view="measurement.no",
          comp=list(ton.ord = c("2","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 203.561992329367.

## 
## measurement.no window(s) of significant difference(s):
##  0.000000 - 3.939394
##  7.575758 - 10.000000
plot_smooth(ai.fem.gam.AR, view="measurement.no", cond=list(f0=100),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 100. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.fem.gam.AR, view="measurement.no", cond=list(f0=120),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 120. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.fem.gam.AR, view="measurement.no", cond=list(f0=140),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 140. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.fem.gam.AR, view="measurement.no", cond=list(f0=180),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.fem.gam.AR, view="measurement.no", cond=list(f0=200),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ai.fem.gam.AR, view=c("measurement.no","f0"),
        ylim=quantile(ai.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 159.611858 to 275.883293. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

1.2.1.3 Central portion

We now focus on the central portion of the diphthongs, which means the portions without the inluence of the consonant contexts.

ai.central.fem$ton.ord <- as.ordered(ai.central.fem$ton)
contrasts(ai.central.fem$ton.ord) <- "contr.treatment"
ai.central.fem.gam.diff <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                        s(measurement.no, by=ton.ord, bs="cr",k=6),
                      data=ai.central.fem, method="ML")
summary.coefs(ai.central.fem.gam.diff)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  764.464     10.337  73.951   <2e-16 ***
## ton.ord2      23.456     12.626   1.858   0.0636 .  
## ton.ord3       1.278     13.036   0.098   0.9219    
## ton.ord4       6.941     10.981   0.632   0.5275    
## 
## Approximate significance of smooth terms:
##                              edf Ref.df     F  p-value    
## s(measurement.no)          2.787  3.350 9.759 1.85e-06 ***
## s(measurement.no):ton.ord2 1.002  1.005 3.192   0.0744 .  
## s(measurement.no):ton.ord3 1.002  1.005 5.494   0.0192 *  
## s(measurement.no):ton.ord4 2.339  2.843 2.021   0.1193
plot_smooth(ai.central.fem.gam.diff, view="measurement.no",
            plot_all="ton.ord", rug=F)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(ai.central.fem.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("1","2")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  2.000000 - 4.848485
plot_diff(ai.central.fem.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","3")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  4.787879 - 7.090909
plot_diff(ai.central.fem.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("3","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  2.000000 - 2.969697
##  5.151515 - 8.000000
ai.central.fem.gam.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                              s(duree.ms., bs="cr",k=6) +
                              ti(measurement.no, duree.ms.,k=6) +
                              s(measurement.no, by=ton.ord, bs="cr",k=6),
                         data=ai.central.fem, method="ML")
summary.coefs(ai.central.fem.gam.dur)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  765.093     10.573  72.362   <2e-16 ***
## ton.ord2      24.013     12.492   1.922    0.055 .  
## ton.ord3      -2.690     13.290  -0.202    0.840    
## ton.ord4       6.656     11.439   0.582    0.561    
## 
## Approximate significance of smooth terms:
##                                edf Ref.df      F  p-value    
## s(measurement.no)            2.800  3.363 10.238 9.86e-07 ***
## s(duree.ms.)                 4.244  4.713  3.477   0.0354 *  
## ti(measurement.no,duree.ms.) 2.227  2.802  2.612   0.0375 *  
## s(measurement.no):ton.ord2   1.001  1.002  3.054   0.0809 .  
## s(measurement.no):ton.ord3   1.001  1.002  5.522   0.0190 *  
## s(measurement.no):ton.ord4   2.354  2.860  2.097   0.1080
plot_smooth(ai.central.fem.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 170. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.fem.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 80. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ai.central.fem.gam.dur, view=c("measurement.no","duree.ms."),
        ylim=quantile(ai.central.fem$duree.ms., c(0.1, 0.9)))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; with 30 values ranging from 89.970028 to 186.666330. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

ai.central.fem.gam.f0 <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                              s(f0, bs="cr",k=6) +
                              ti(measurement.no, f0,k=6) +
                              s(measurement.no, by=ton.ord, bs="cr",k=6),
                         data=ai.central.fem, method="ML")
summary.coefs(ai.central.fem.gam.f0)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   753.01      10.66  70.639   <2e-16 ***
## ton.ord2       40.34      14.26   2.829   0.0048 ** 
## ton.ord3       25.36      14.31   1.771   0.0769 .  
## ton.ord4       14.76      11.07   1.333   0.1828    
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F p-value    
## s(measurement.no)          2.956  3.535 12.622 < 2e-16 ***
## s(f0)                      1.000  1.001  9.090 0.00265 ** 
## ti(measurement.no,f0)      1.003  1.006  7.019 0.00817 ** 
## s(measurement.no):ton.ord2 1.001  1.002  1.025 0.31201    
## s(measurement.no):ton.ord3 1.001  1.001  1.560 0.21208    
## s(measurement.no):ton.ord4 2.117  2.590  1.603 0.18325
plot_smooth(ai.central.fem.gam.f0, view="measurement.no", cond=list(f0=180),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.fem.gam.f0, view="measurement.no", cond=list(f0=200),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.fem.gam.f0, view="measurement.no", cond=list(f0=220),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 220. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.fem.gam.f0, view="measurement.no", cond=list(f0=240),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 240. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.fem.gam.f0, view="measurement.no", cond=list(f0=260),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 260. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ai.central.fem.gam.f0, view=c("measurement.no","f0"),
        ylim=quantile(ai.central.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 159.333410 to 268.051028. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

1.2.2 F2

1.2.2.1 Basic models

We fit the same model with a basic smooth of tone 1 and difference smooths.

ai.fem.f2.gam.diff <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
                        s(measurement.no, by=ton.ord, bs="cr"),
                      data=ai.fem, method="ML")
summary.coefs(ai.fem.f2.gam.diff)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2038.36      17.15 118.880  < 2e-16 ***
## ton.ord2     -107.98      20.81  -5.189 2.49e-07 ***
## ton.ord3      -88.98      21.43  -4.152 3.53e-05 ***
## ton.ord4      -70.79      18.18  -3.893 0.000105 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F  p-value    
## s(measurement.no)          4.280  5.234  3.945 0.001255 ** 
## s(measurement.no):ton.ord2 1.002  1.005 22.811 2.65e-06 ***
## s(measurement.no):ton.ord3 2.149  2.673  9.920 9.98e-06 ***
## s(measurement.no):ton.ord4 1.003  1.005 11.113 0.000866 ***

Now the plots of f2 with different tones.

plot_smooth(ai.fem.f2.gam.diff, view="measurement.no",
            plot_all="ton.ord", rug=F)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(ai.fem.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("1","2")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  0.000000 - 6.666667
plot_diff(ai.fem.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","3")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  4.545455 - 5.959596
plot_diff(ai.fem.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("3","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  0.000000 - 2.424242

The model that accounts for the influence of duree.ms. on the trajectories.

ai.fem.f2.gam.dur <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(duree.ms., bs="cr") +
                              ti(measurement.no, duree.ms.) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=ai.fem, method="ML")
summary.coefs(ai.fem.f2.gam.dur)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2038.81      17.36 117.410  < 2e-16 ***
## ton.ord2     -102.76      20.46  -5.023 5.88e-07 ***
## ton.ord3      -87.08      21.69  -4.014 6.35e-05 ***
## ton.ord4      -73.67      18.78  -3.922 9.29e-05 ***
## 
## Approximate significance of smooth terms:
##                                edf Ref.df      F  p-value    
## s(measurement.no)            4.356  5.321  4.858 0.000157 ***
## s(duree.ms.)                 6.537  7.514  5.600 1.96e-06 ***
## ti(measurement.no,duree.ms.) 3.189  3.659  7.475 1.13e-05 ***
## s(measurement.no):ton.ord2   1.002  1.005 21.541 3.84e-06 ***
## s(measurement.no):ton.ord3   2.182  2.713  8.207 6.17e-05 ***
## s(measurement.no):ton.ord4   1.004  1.007  4.444 0.034836 *

The plots with regard the durations.

plot_smooth(ai.fem.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 170. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.fem.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 80. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ai.fem.f2.gam.dur, view=c("measurement.no","duree.ms."),
        ylim=quantile(ai.fem$duree.ms., c(0.1, 0.9)))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; with 30 values ranging from 89.970028 to 186.666330. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

ai.fem.f2.gam.f0 <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(f0, bs="cr") +
                              ti(measurement.no, f0) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=ai.fem, method="ML")
summary.coefs(ai.fem.f2.gam.f0)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2006.20      17.59 114.025   <2e-16 ***
## ton.ord2      -47.56      23.69  -2.008   0.0449 *  
## ton.ord3      -39.15      23.59  -1.660   0.0972 .  
## ton.ord4      -33.95      18.66  -1.819   0.0691 .  
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F  p-value    
## s(measurement.no)          3.765  4.647  3.339 0.006051 ** 
## s(f0)                      4.465  5.325  9.702  < 2e-16 ***
## ti(measurement.no,f0)      1.001  1.002  3.953 0.046912 *  
## s(measurement.no):ton.ord2 1.000  1.001  7.075 0.007921 ** 
## s(measurement.no):ton.ord3 1.878  2.345  4.999 0.004516 ** 
## s(measurement.no):ton.ord4 1.001  1.002 14.369 0.000158 ***
plot_smooth(ai.fem.f2.gam.f0, view="measurement.no", cond=list(f0=180),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.fem.f2.gam.f0, view="measurement.no", cond=list(f0=200),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.fem.f2.gam.f0, view="measurement.no", cond=list(f0=220),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 220. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.fem.f2.gam.f0, view="measurement.no", cond=list(f0=240),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 240. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.fem.f2.gam.f0, view="measurement.no", cond=list(f0=260),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 260. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ai.fem.f2.gam.f0, view=c("measurement.no","f0"),
        ylim=quantile(ai.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 159.611858 to 275.883293. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

1.2.2.2 Central portion

The central portion:

ai.central.fem.f2.gam.diff <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                        s(measurement.no, by=ton.ord, bs="cr",k=6),
                      data=ai.central.fem, method="ML")
summary.coefs(ai.central.fem.f2.gam.diff)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2048.03      17.96 114.046  < 2e-16 ***
## ton.ord2     -110.36      21.93  -5.032 6.06e-07 ***
## ton.ord3      -68.99      22.65  -3.047  0.00239 ** 
## ton.ord4      -74.75      19.08  -3.919 9.70e-05 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df     F p-value   
## s(measurement.no)          1.354  1.610 3.247 0.03218 * 
## s(measurement.no):ton.ord2 1.002  1.003 7.512 0.00623 **
## s(measurement.no):ton.ord3 1.002  1.004 6.353 0.01188 * 
## s(measurement.no):ton.ord4 1.108  1.194 1.388 0.20091
plot_smooth(ai.central.fem.f2.gam.diff, view="measurement.no",
            plot_all="ton.ord", rug=F)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(ai.central.fem.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("1","2")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  2.000000 - 6.727273
plot_diff(ai.central.fem.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","3")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  3.757576 - 5.818182
plot_diff(ai.central.fem.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("3","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## Difference is not significant.
plot_diff(ai.central.fem.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  2.000000 - 5.333333
ai.central.fem.f2.gam.dur <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                              s(duree.ms., bs="cr",k=6) +
                              ti(measurement.no, duree.ms.,k=6) +
                              s(measurement.no, by=ton.ord, bs="cr",k=6),
                         data=ai.central.fem, method="ML")
summary.coefs(ai.central.fem.f2.gam.dur)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2057.82      18.18 113.168  < 2e-16 ***
## ton.ord2     -114.28      21.48  -5.321 1.36e-07 ***
## ton.ord3      -74.34      22.87  -3.251   0.0012 ** 
## ton.ord4      -88.36      19.67  -4.491 8.18e-06 ***
## 
## Approximate significance of smooth terms:
##                                edf Ref.df     F  p-value    
## s(measurement.no)            1.226  1.395 6.156 0.005088 ** 
## s(duree.ms.)                 4.351  4.781 5.615 0.000994 ***
## ti(measurement.no,duree.ms.) 2.317  2.905 5.698 0.001249 ** 
## s(measurement.no):ton.ord2   1.001  1.002 7.310 0.006986 ** 
## s(measurement.no):ton.ord3   1.001  1.002 4.581 0.032602 *  
## s(measurement.no):ton.ord4   1.276  1.479 0.171 0.687964
plot_smooth(ai.central.fem.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 170. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.fem.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 80. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ai.central.fem.f2.gam.dur, view=c("measurement.no","duree.ms."),
        ylim=quantile(ai.central.fem$duree.ms., c(0.1, 0.9)))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; with 30 values ranging from 89.970028 to 186.666330. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

ai.central.fem.f2.gam.f0 <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                              s(f0, bs="cr",k=6) +
                              ti(measurement.no, f0,k=6) +
                              s(measurement.no, by=ton.ord, bs="cr",k=6),
                         data=ai.central.fem, method="ML")
summary.coefs(ai.central.fem.f2.gam.f0)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2010.59      18.67 107.680   <2e-16 ***
## ton.ord2      -46.55      25.44  -1.830   0.0677 .  
## ton.ord3      -24.49      25.01  -0.979   0.3278    
## ton.ord4      -31.78      19.74  -1.610   0.1079    
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F p-value    
## s(measurement.no)          1.019  1.036  9.108 0.00263 ** 
## s(f0)                      3.656  4.215 12.066 < 2e-16 ***
## ti(measurement.no,f0)      2.960  3.539  4.413 0.00284 ** 
## s(measurement.no):ton.ord2 1.001  1.001  2.724 0.09917 .  
## s(measurement.no):ton.ord3 1.001  1.001  2.309 0.12896    
## s(measurement.no):ton.ord4 1.158  1.296  1.005 0.41341
plot_smooth(ai.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=180),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=200),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=220),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 220. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=240),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 240. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ai.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=260),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 260. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ai.central.fem.f2.gam.f0, view=c("measurement.no","f0"),
        ylim=quantile(ai.central.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 159.333410 to 268.051028. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

2 /au/

The next diphthong we look at is /au/.

au$sexe<-as.factor(au$sexe)
au$ton<-as.factor(au$ton)
au$pow<-as.factor(au$pow)
au$contexte.D<-as.factor(au$contexte.D)
au$contexte.G<-as.factor(au$contexte.G)

au$f1<-as.numeric(au$f1)
## Warning: NAs introduced by coercion
au$f2<-as.numeric(au$f2)
## Warning: NAs introduced by coercion
au$f3<-as.numeric(au$f3)
## Warning: NAs introduced by coercion
au$f0<-as.numeric(au$f0)
## Warning: NAs introduced by coercion
# Regroupement par les facteurs
au.mas <- droplevels(subset(au,sexe=="M"))
au.fem <- droplevels(subset(au,sexe=="F"))

2.1 Masculin

2.1.1 F1

Then the trajectories of f1 in different tones with regard of the sexes and the durations.

ggplot(au.mas, aes(x=measurement.no, y=f1, group=numero,
                     alpha=duree.ms.)) +
  facet_grid(~ton) + geom_line()
## Warning: Removed 28 row(s) containing missing values (geom_path).

ggplot(au.fem, aes(x=measurement.no, y=f1, group=numero,
                     alpha=duree.ms.)) +
  facet_grid(~ton) + geom_line()
## Warning: Removed 5 row(s) containing missing values (geom_path).

2.1.1.1 Basic models

Then the first model with a basic smooth of tone 1 and difference smooths.

au.mas$ton.ord <- as.ordered(au.mas$ton)
contrasts(au.mas$ton.ord) <- "contr.treatment"
au.mas.gam.diff <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                        s(measurement.no, by=ton.ord, bs="cr"),
                      data=au.mas, method="ML")
summary.coefs(au.mas.gam.diff)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  526.114      9.404   55.95  < 2e-16 ***
## ton.ord2     126.252     15.586    8.10  1.4e-15 ***
## ton.ord3     126.917     11.210   11.32  < 2e-16 ***
## ton.ord4     114.900      9.973   11.52  < 2e-16 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F p-value    
## s(measurement.no)          5.175  6.240 43.623  <2e-16 ***
## s(measurement.no):ton.ord2 1.001  1.003  1.017  0.3133    
## s(measurement.no):ton.ord3 1.001  1.003  0.047  0.8300    
## s(measurement.no):ton.ord4 1.002  1.004  6.038  0.0141 *

Then the plots of predictions and difference smooth.

plot_smooth(au.mas.gam.diff, view="measurement.no",
            plot_all="ton.ord", rug=F)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(au.mas.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("1","2")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  0.000000 - 10.000000
plot_diff(au.mas.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","3")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## Difference is not significant.
plot_diff(au.mas.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("3","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  0.000000 - 4.646465

The model that accounts for the influence of duree.ms. on the trajectories.

au.mas.gam.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(duree.ms., bs="cr") +
                              ti(measurement.no, duree.ms.) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=au.mas, method="ML")
summary.coefs(au.mas.gam.dur)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  524.641      9.171  57.206  < 2e-16 ***
## ton.ord2     125.207     15.416   8.122  1.2e-15 ***
## ton.ord3     126.015     10.888  11.574  < 2e-16 ***
## ton.ord4     117.901      9.772  12.065  < 2e-16 ***
## 
## Approximate significance of smooth terms:
##                                edf Ref.df      F  p-value    
## s(measurement.no)            5.187  6.250 29.289  < 2e-16 ***
## s(duree.ms.)                 5.773  6.746  6.298 1.86e-06 ***
## ti(measurement.no,duree.ms.) 4.795  6.455  4.367 0.000185 ***
## s(measurement.no):ton.ord2   1.002  1.004  1.567 0.210558    
## s(measurement.no):ton.ord3   1.002  1.003  0.036 0.852676    
## s(measurement.no):ton.ord4   1.404  1.692  3.803 0.063064 .

The plots with regard the durations.

plot_smooth(au.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 170. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 80. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(au.mas.gam.dur, view=c("measurement.no","duree.ms."),
        ylim=quantile(au.mas$duree.ms., c(0.1, 0.9)))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; with 30 values ranging from 88.249203 to 188.623093. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

The model with regard of f0.

au.mas.gam.f0 <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(f0, bs="cr") +
                              ti(measurement.no, f0) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=au.mas, method="ML")
summary.coefs(au.mas.gam.f0)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   529.26      10.05  52.638  < 2e-16 ***
## ton.ord2      131.08      15.62   8.395  < 2e-16 ***
## ton.ord3       95.77      13.39   7.155 1.74e-12 ***
## ton.ord4      101.76      10.81   9.413  < 2e-16 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F  p-value    
## s(measurement.no)          5.252  6.333 33.975  < 2e-16 ***
## s(f0)                      4.586  5.322  6.824 2.52e-06 ***
## ti(measurement.no,f0)      7.991  9.443  6.179  < 2e-16 ***
## s(measurement.no):ton.ord2 1.001  1.001  0.432   0.5114    
## s(measurement.no):ton.ord3 1.001  1.001  3.349   0.0676 .  
## s(measurement.no):ton.ord4 1.001  1.002  0.611   0.4344

The plot of such model.

plot_smooth(au.mas.gam.f0, view="measurement.no", cond=list(f0=100),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 100. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.mas.gam.f0, view="measurement.no", cond=list(f0=120),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 120. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.mas.gam.f0, view="measurement.no", cond=list(f0=140),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 140. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.mas.gam.f0, view="measurement.no", cond=list(f0=180),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.mas.gam.f0, view="measurement.no", cond=list(f0=200),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(au.mas.gam.f0, view=c("measurement.no","f0"),
        ylim=quantile(au.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 96.765573 to 193.084157. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

2.1.1.2 Central portion

We now focus on the central portion of the diphthongs, which means the portions without the inluence of the consonant contexts.

au.central<-droplevels(subset(au,measurement.no>=2))
au.central<-droplevels(subset(au.central,measurement.no<=8))

au.central.mas <- droplevels(subset(au.central,sexe=="M"))
au.central.fem <- droplevels(subset(au.central,sexe=="F"))
au.central.mas$ton.ord <- as.ordered(au.central.mas$ton)
contrasts(au.central.mas$ton.ord) <- "contr.treatment"
au.central.mas.gam.diff <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                        s(measurement.no, by=ton.ord, bs="cr",k=6),
                      data=au.central.mas, method="ML")
summary.coefs(au.central.mas.gam.diff)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  550.448      9.241  59.564  < 2e-16 ***
## ton.ord2     129.179     15.383   8.397 2.34e-16 ***
## ton.ord3     127.691     11.019  11.588  < 2e-16 ***
## ton.ord4     118.533      9.796  12.100  < 2e-16 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F p-value    
## s(measurement.no)          2.810  3.396 15.852 < 2e-16 ***
## s(measurement.no):ton.ord2 1.003  1.005  4.378 0.03641 *  
## s(measurement.no):ton.ord3 1.001  1.001  2.404 0.12136    
## s(measurement.no):ton.ord4 1.000  1.000  9.126 0.00261 **
plot_smooth(au.central.mas.gam.diff, view="measurement.no",
            plot_all="ton.ord", rug=F)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(au.central.mas.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("1","2")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  2.000000 - 8.000000
plot_diff(au.central.mas.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","3")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## Difference is not significant.
plot_diff(au.central.mas.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("3","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  2.000000 - 4.121212
au.central.mas.gam.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                              s(duree.ms., bs="cr",k=6) +
                              ti(measurement.no, duree.ms.,k=6) +
                              s(measurement.no, by=ton.ord, bs="cr",k=6),
                         data=au.central.mas, method="ML")
summary.coefs(au.central.mas.gam.dur)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  546.970      8.750  62.510   <2e-16 ***
## ton.ord2     126.248     14.702   8.587   <2e-16 ***
## ton.ord3     125.939     10.419  12.088   <2e-16 ***
## ton.ord4     124.633      9.313  13.383   <2e-16 ***
## 
## Approximate significance of smooth terms:
##                                edf Ref.df      F  p-value    
## s(measurement.no)            2.889  3.483 16.396  < 2e-16 ***
## s(duree.ms.)                 4.729  4.956 12.542  < 2e-16 ***
## ti(measurement.no,duree.ms.) 1.007  1.014 25.808 5.65e-07 ***
## s(measurement.no):ton.ord2   1.001  1.002  7.021  0.00819 ** 
## s(measurement.no):ton.ord3   1.001  1.001  2.557  0.11019    
## s(measurement.no):ton.ord4   1.001  1.002  6.929  0.00865 **
plot_smooth(au.central.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 170. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 80. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(au.central.mas.gam.dur, view=c("measurement.no","duree.ms."),
        ylim=quantile(au.central.mas$duree.ms., c(0.1, 0.9)))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; with 30 values ranging from 88.249203 to 188.623093. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

au.central.mas.gam.f0 <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                              s(f0, bs="cr",k=6) +
                              ti(measurement.no, f0,k=6) +
                              s(measurement.no, by=ton.ord, bs="cr",k=6),
                         data=au.central.mas, method="ML")
summary.coefs(au.central.mas.gam.f0)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  556.694      9.629  57.813  < 2e-16 ***
## ton.ord2     126.541     15.180   8.336 5.20e-16 ***
## ton.ord3      94.060     12.558   7.490 2.45e-13 ***
## ton.ord4     103.838     10.329  10.053  < 2e-16 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df     F  p-value    
## s(measurement.no)          2.847  3.437 9.980 1.38e-06 ***
## s(f0)                      3.726  4.190 9.061 5.58e-07 ***
## ti(measurement.no,f0)      2.223  2.733 9.811 9.87e-06 ***
## s(measurement.no):ton.ord2 1.003  1.006 1.007    0.317    
## s(measurement.no):ton.ord3 1.000  1.001 0.636    0.426    
## s(measurement.no):ton.ord4 1.001  1.001 0.356    0.551
plot_smooth(au.central.mas.gam.f0, view="measurement.no", cond=list(f0=100),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 100. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.mas.gam.f0, view="measurement.no", cond=list(f0=120),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 120. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.mas.gam.f0, view="measurement.no", cond=list(f0=140),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 140. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.mas.gam.f0, view="measurement.no", cond=list(f0=180),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.mas.gam.f0, view="measurement.no", cond=list(f0=200),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(au.central.mas.gam.f0, view=c("measurement.no","f0"),
        ylim=quantile(au.central.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 96.144383 to 194.306588. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

2.1.2 F2

Now we look at the trajectories of f2 in different tones with regard of the sexes and the durations.

ggplot(au.mas, aes(x=measurement.no, y=f2, group=numero,
                     alpha=duree.ms.)) +
  facet_grid(~ton) + geom_line()
## Warning: Removed 28 row(s) containing missing values (geom_path).

ggplot(au.fem, aes(x=measurement.no, y=f2, group=numero,
                     alpha=duree.ms.)) +
  facet_grid(~ton) + geom_line()
## Warning: Removed 5 row(s) containing missing values (geom_path).

2.1.2.1 Basic models

au.mas.f2.gam.diff <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
                        s(measurement.no, by=ton.ord, bs="cr"),
                      data=au.mas, method="ML")
summary.coefs(au.mas.f2.gam.diff)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1060.38      19.25  55.073  < 2e-16 ***
## ton.ord2      -16.26      31.91  -0.509  0.61057    
## ton.ord3       41.68      22.95   1.816  0.06963 .  
## ton.ord4       71.39      20.42   3.496  0.00049 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F p-value    
## s(measurement.no)          4.749  5.770 22.857  <2e-16 ***
## s(measurement.no):ton.ord2 1.001  1.002  1.953   0.162    
## s(measurement.no):ton.ord3 1.001  1.002  0.359   0.549    
## s(measurement.no):ton.ord4 1.001  1.002  0.525   0.469

Now the plots of f2 with different tones.

plot_smooth(au.mas.f2.gam.diff, view="measurement.no",
            plot_all="ton.ord", rug=F)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(au.mas.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("1","2")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## Difference is not significant.
plot_diff(au.mas.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","3")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  0.000000 - 5.050505
plot_diff(au.mas.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("3","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  3.939394 - 6.161616

The model that accounts for the influence of duree.ms. on the trajectories.

au.mas.f2.gam.dur <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(duree.ms., bs="cr") +
                              ti(measurement.no, duree.ms.) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=au.mas, method="ML")
summary.coefs(au.mas.f2.gam.dur)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1063.07      18.99  55.986  < 2e-16 ***
## ton.ord2      -17.43      31.58  -0.552 0.580999    
## ton.ord3       39.56      22.57   1.753 0.079956 .  
## ton.ord4       68.74      20.20   3.404 0.000689 ***
## 
## Approximate significance of smooth terms:
##                                edf Ref.df      F p-value    
## s(measurement.no)            4.777  5.801 23.811 < 2e-16 ***
## s(duree.ms.)                 2.383  2.983  3.122  0.0298 *  
## ti(measurement.no,duree.ms.) 3.868  5.468  5.791 1.4e-05 ***
## s(measurement.no):ton.ord2   1.001  1.002  3.162  0.0755 .  
## s(measurement.no):ton.ord3   1.001  1.002  0.258  0.6123    
## s(measurement.no):ton.ord4   1.001  1.002  0.032  0.8598

The plots with regard the durations.

plot_smooth(au.mas.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 170. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.mas.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 80. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(au.mas.f2.gam.dur, view=c("measurement.no","duree.ms."),
        ylim=quantile(au.mas$duree.ms., c(0.1, 0.9)))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; with 30 values ranging from 88.249203 to 188.623093. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

au.mas.f2.gam.f0 <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(f0, bs="cr") +
                              ti(measurement.no, f0) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=au.mas, method="ML")
summary.coefs(au.mas.f2.gam.f0)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 1040.123     21.482  48.418  < 2e-16 ***
## ton.ord2       1.004     33.381   0.030   0.9760    
## ton.ord3      57.854     28.533   2.028   0.0429 *  
## ton.ord4     106.077     23.094   4.593 4.98e-06 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F p-value    
## s(measurement.no)          4.474  5.466 14.610 < 2e-16 ***
## s(f0)                      3.770  4.423  3.068 0.01447 *  
## ti(measurement.no,f0)      5.973  7.372  3.161 0.00211 ** 
## s(measurement.no):ton.ord2 1.002  1.005  1.194 0.27402    
## s(measurement.no):ton.ord3 1.002  1.003  3.514 0.06108 .  
## s(measurement.no):ton.ord4 1.001  1.003  0.329 0.56735
plot_smooth(au.mas.f2.gam.f0, view="measurement.no", cond=list(f0=100),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 100. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.mas.f2.gam.f0, view="measurement.no", cond=list(f0=120),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 120. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.mas.f2.gam.f0, view="measurement.no", cond=list(f0=140),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 140. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.mas.f2.gam.f0, view="measurement.no", cond=list(f0=180),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.mas.f2.gam.f0, view="measurement.no", cond=list(f0=200),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(au.mas.f2.gam.f0, view=c("measurement.no","f0"),
        ylim=quantile(au.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 96.765573 to 193.084157. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

2.1.2.2 Central portion

The central portion:

au.central.mas.f2.gam.diff <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                        s(measurement.no, by=ton.ord, bs="cr",k=6),
                      data=au.central.mas, method="ML")
summary.coefs(au.central.mas.f2.gam.diff)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1019.65      17.72  57.550  < 2e-16 ***
## ton.ord2      -28.96      29.49  -0.982 0.326539    
## ton.ord3       41.91      21.13   1.984 0.047634 *  
## ton.ord4       72.29      18.78   3.849 0.000129 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df     F  p-value    
## s(measurement.no)          2.436  2.974 5.628 0.000806 ***
## s(measurement.no):ton.ord2 1.001  1.001 0.060 0.806948    
## s(measurement.no):ton.ord3 1.001  1.002 1.600 0.205982    
## s(measurement.no):ton.ord4 1.003  1.005 1.718 0.189273
plot_smooth(au.central.mas.f2.gam.diff, view="measurement.no",
            plot_all="ton.ord", rug=F)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(au.central.mas.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("1","2")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## Difference is not significant.
plot_diff(au.central.mas.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","3")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  3.878788 - 8.000000
plot_diff(au.central.mas.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("3","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  3.575758 - 6.060606
plot_diff(au.central.mas.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  2.424242 - 8.000000
au.central.mas.f2.gam.dur <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                              s(duree.ms., bs="cr",k=6) +
                              ti(measurement.no, duree.ms.,k=6) +
                              s(measurement.no, by=ton.ord, bs="cr",k=6),
                         data=au.central.mas, method="ML")
summary.coefs(au.central.mas.f2.gam.dur)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1023.66      17.02  60.138  < 2e-16 ***
## ton.ord2      -27.88      28.47  -0.979 0.327697    
## ton.ord3       38.52      20.25   1.902 0.057516 .  
## ton.ord4       67.71      18.10   3.741 0.000198 ***
## 
## Approximate significance of smooth terms:
##                                edf Ref.df      F  p-value    
## s(measurement.no)            2.535  3.088  5.539  0.00085 ***
## s(duree.ms.)                 3.040  3.634 10.338 6.04e-07 ***
## ti(measurement.no,duree.ms.) 1.008  1.015 31.035  < 2e-16 ***
## s(measurement.no):ton.ord2   1.000  1.001  0.413  0.52098    
## s(measurement.no):ton.ord3   1.001  1.001  1.316  0.25143    
## s(measurement.no):ton.ord4   1.000  1.001  0.553  0.45724
plot_smooth(au.central.mas.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 170. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.mas.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 80. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(au.central.mas.f2.gam.dur, view=c("measurement.no","duree.ms."),
        ylim=quantile(au.central.mas$duree.ms., c(0.1, 0.9)))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; with 30 values ranging from 88.249203 to 188.623093. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

au.central.mas.f2.gam.f0 <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                              s(f0, bs="cr",k=6) +
                              ti(measurement.no, f0,k=6) +
                              s(measurement.no, by=ton.ord, bs="cr",k=6),
                         data=au.central.mas, method="ML")
summary.coefs(au.central.mas.f2.gam.f0)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1001.57      19.59  51.118  < 2e-16 ***
## ton.ord2      -11.55      30.90  -0.374  0.70875    
## ton.ord3       66.99      25.01   2.679  0.00759 ** 
## ton.ord4      108.92      21.06   5.171 3.16e-07 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df     F p-value  
## s(measurement.no)          1.906  2.355 3.173  0.0343 *
## s(f0)                      1.000  1.000 4.531  0.0337 *
## ti(measurement.no,f0)      2.748  3.204 3.803  0.0104 *
## s(measurement.no):ton.ord2 1.000  1.001 0.003  0.9624  
## s(measurement.no):ton.ord3 1.000  1.001 3.746  0.0533 .
## s(measurement.no):ton.ord4 1.004  1.007 1.428  0.2338
plot_smooth(au.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=100),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 100. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=120),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 120. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=140),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 140. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=180),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.mas.f2.gam.f0, view="measurement.no", cond=list(f0=200),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(au.central.mas.f2.gam.f0, view=c("measurement.no","f0"),
        ylim=quantile(au.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 96.765573 to 193.084157. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

2.2 Féminin

2.2.1 F1

2.2.1.1 Basic models

We now switch to the data of feminin subjects.

The first model with a basic smooth of tone 1 and difference smooths.

au.fem$ton.ord <- as.ordered(au.fem$ton)
contrasts(au.fem$ton.ord) <- "contr.treatment"
au.fem.gam.diff <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                        s(measurement.no, by=ton.ord, bs="cr"),
                      data=au.fem, method="ML")
summary.coefs(au.fem.gam.diff)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   705.06      10.06  70.066  < 2e-16 ***
## ton.ord2      187.78      33.38   5.626 2.96e-08 ***
## ton.ord3       62.30      16.43   3.791 0.000167 ***
## ton.ord4       81.91      11.47   7.144 2.94e-12 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F  p-value    
## s(measurement.no)          4.740  5.758 43.537  < 2e-16 ***
## s(measurement.no):ton.ord2 3.198  3.954  5.294 0.000381 ***
## s(measurement.no):ton.ord3 1.840  2.291  1.256 0.298494    
## s(measurement.no):ton.ord4 1.002  1.003  7.957 0.004933 **

Then the plots of predictions and difference smooth.

plot_smooth(au.fem.gam.diff, view="measurement.no",
            plot_all="ton.ord", rug=F)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(au.fem.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("1","2")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  1.212121 - 4.444444
##  6.767677 - 10.000000
plot_diff(au.fem.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","3")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  7.777778 - 10.000000
plot_diff(au.fem.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("3","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  5.151515 - 7.373737

The model that accounts for the influence of duree.ms. on the trajectories.

au.fem.gam.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(duree.ms., bs="cr") +
                              ti(measurement.no, duree.ms.) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=au.fem, method="ML")
summary.coefs(au.fem.gam.dur)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  703.912      9.631  73.085  < 2e-16 ***
## ton.ord2     162.616     33.082   4.916 1.18e-06 ***
## ton.ord3      71.044     16.139   4.402 1.30e-05 ***
## ton.ord4      83.049     11.045   7.519 2.38e-13 ***
## 
## Approximate significance of smooth terms:
##                                edf Ref.df      F  p-value    
## s(measurement.no)            4.857  5.888 47.913  < 2e-16 ***
## s(duree.ms.)                 7.252  8.033  6.097  < 2e-16 ***
## ti(measurement.no,duree.ms.) 4.766  6.124  4.095 0.000464 ***
## s(measurement.no):ton.ord2   3.249  4.016  5.877 0.000122 ***
## s(measurement.no):ton.ord3   2.040  2.538  1.656 0.178389    
## s(measurement.no):ton.ord4   1.002  1.003  8.829 0.003075 **

The plots with regard the durations.

plot_smooth(au.fem.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 170. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.fem.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 80. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(au.fem.gam.dur, view=c("measurement.no","duree.ms."),
        ylim=quantile(au.fem$duree.ms., c(0.1, 0.9)))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; with 30 values ranging from 97.219130 to 204.993095. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

The model with regard of f0.

au.fem.gam.f0 <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(f0, bs="cr") +
                              ti(measurement.no, f0) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=au.fem, method="ML")
summary.coefs(au.fem.gam.f0)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   712.08      10.12  70.351  < 2e-16 ***
## ton.ord2      124.01      30.67   4.043 6.13e-05 ***
## ton.ord3       45.52      18.08   2.518   0.0121 *  
## ton.ord4       75.80      11.95   6.341 5.21e-10 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F  p-value    
## s(measurement.no)          5.691  6.795 66.027  < 2e-16 ***
## s(f0)                      3.990  4.966  7.738 7.61e-07 ***
## ti(measurement.no,f0)      1.001  1.002  4.710  0.03037 *  
## s(measurement.no):ton.ord2 3.554  4.382 10.537  < 2e-16 ***
## s(measurement.no):ton.ord3 1.001  1.002  6.506  0.01100 *  
## s(measurement.no):ton.ord4 1.001  1.002  9.902  0.00175 **

The plot of such model.

plot_smooth(au.fem.gam.f0, view="measurement.no", cond=list(f0=180),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.fem.gam.f0, view="measurement.no", cond=list(f0=200),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.fem.gam.f0, view="measurement.no", cond=list(f0=220),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 220. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.fem.gam.f0, view="measurement.no", cond=list(f0=240),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 240. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.fem.gam.f0, view="measurement.no", cond=list(f0=260),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 260. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(au.fem.gam.f0, view=c("measurement.no","f0"),
        ylim=quantile(au.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 148.879493 to 290.377970. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

2.2.1.2 Central portion

We now focus on the central portion of the diphthongs, which means the portions without the inluence of the consonant contexts.

au.central.fem$ton.ord <- as.ordered(au.central.fem$ton)
contrasts(au.central.fem$ton.ord) <- "contr.treatment"
au.central.fem.gam.diff <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                        s(measurement.no, by=ton.ord, bs="cr",k=6),
                      data=au.central.fem, method="ML")
summary.coefs(au.central.fem.gam.diff)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  756.899      9.062  83.529  < 2e-16 ***
## ton.ord2     124.447     30.054   4.141 4.35e-05 ***
## ton.ord3      40.090     14.797   2.709  0.00708 ** 
## ton.ord4      75.388     10.308   7.313 1.82e-12 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F p-value    
## s(measurement.no)          2.899  3.493 15.569  <2e-16 ***
## s(measurement.no):ton.ord2 1.000  1.001  0.130  0.7195    
## s(measurement.no):ton.ord3 1.000  1.001  0.885  0.3473    
## s(measurement.no):ton.ord4 1.000  1.001  4.559  0.0334 *
plot_smooth(au.central.fem.gam.diff, view="measurement.no",
            plot_all="ton.ord", rug=F)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(au.central.fem.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("1","2")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  2.000000 - 8.000000
plot_diff(au.central.fem.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","3")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  2.000000 - 6.121212
plot_diff(au.central.fem.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("3","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  3.696970 - 8.000000
au.central.fem.gam.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                              s(duree.ms., bs="cr",k=6) +
                              ti(measurement.no, duree.ms.,k=6) +
                              s(measurement.no, by=ton.ord, bs="cr",k=6),
                         data=au.central.fem, method="ML")
summary.coefs(au.central.fem.gam.dur)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  759.352      8.740  86.885  < 2e-16 ***
## ton.ord2     132.451     29.078   4.555 7.29e-06 ***
## ton.ord3      41.184     14.296   2.881  0.00422 ** 
## ton.ord4      71.279      9.988   7.137 5.74e-12 ***
## 
## Approximate significance of smooth terms:
##                                edf Ref.df      F  p-value    
## s(measurement.no)            2.943  3.542 16.051  < 2e-16 ***
## s(duree.ms.)                 2.429  2.901  4.261 0.008022 ** 
## ti(measurement.no,duree.ms.) 1.913  2.312  8.000 0.000239 ***
## s(measurement.no):ton.ord2   1.000  1.001  0.049 0.825277    
## s(measurement.no):ton.ord3   1.001  1.001  0.387 0.534156    
## s(measurement.no):ton.ord4   1.001  1.001  4.180 0.041654 *
plot_smooth(au.central.fem.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 170. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.fem.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 80. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(au.central.fem.gam.dur, view=c("measurement.no","duree.ms."),
        ylim=quantile(au.central.fem$duree.ms., c(0.1, 0.9)))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; with 30 values ranging from 97.219130 to 204.993095. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

au.central.fem.gam.f0 <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                              s(f0, bs="cr",k=6) +
                              ti(measurement.no, f0,k=6) +
                              s(measurement.no, by=ton.ord, bs="cr",k=6),
                         data=au.central.fem, method="ML")
summary.coefs(au.central.fem.gam.f0)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   756.85      10.62  71.252  < 2e-16 ***
## ton.ord2       62.20      32.49   1.914   0.0565 .  
## ton.ord3       45.61      18.32   2.489   0.0133 *  
## ton.ord4       79.88      12.39   6.445 4.14e-10 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F  p-value    
## s(measurement.no)          2.922  3.520 19.621  < 2e-16 ***
## s(f0)                      3.812  4.432  7.654 5.98e-06 ***
## ti(measurement.no,f0)      1.006  1.013  7.034  0.00807 ** 
## s(measurement.no):ton.ord2 1.001  1.001  1.251  0.26405    
## s(measurement.no):ton.ord3 1.000  1.000  7.390  0.00691 ** 
## s(measurement.no):ton.ord4 1.000  1.000  8.708  0.00339 **
plot_smooth(au.central.fem.gam.f0, view="measurement.no", cond=list(f0=180),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.fem.gam.f0, view="measurement.no", cond=list(f0=200),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.fem.gam.f0, view="measurement.no", cond=list(f0=220),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 220. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.fem.gam.f0, view="measurement.no", cond=list(f0=240),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 240. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.fem.gam.f0, view="measurement.no", cond=list(f0=260),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 260. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(au.central.fem.gam.f0, view=c("measurement.no","f0"),
        ylim=quantile(au.central.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 148.704236 to 283.580290. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

2.2.2 F2

2.2.2.1 Basic models

We fit the same model with a basic smooth of tone 1 and difference smooths.

au.fem.f2.gam.diff <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
                        s(measurement.no, by=ton.ord, bs="cr"),
                      data=au.fem, method="ML")
summary.coefs(au.fem.f2.gam.diff)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1328.42      17.10  77.689   <2e-16 ***
## ton.ord2      -13.33      56.72  -0.235   0.8142    
## ton.ord3       57.08      27.92   2.044   0.0414 *  
## ton.ord4       36.30      19.48   1.863   0.0629 .  
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F p-value    
## s(measurement.no)          4.212  5.157 20.893 < 2e-16 ***
## s(measurement.no):ton.ord2 3.288  4.063  3.777 0.00447 ** 
## s(measurement.no):ton.ord3 1.003  1.007  3.779 0.05239 .  
## s(measurement.no):ton.ord4 1.002  1.003  0.082 0.77608

Now the plots of f2 with different tones.

plot_smooth(au.fem.f2.gam.diff, view="measurement.no",
            plot_all="ton.ord", rug=F)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(au.fem.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("1","2")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  8.989899 - 10.000000
plot_diff(au.fem.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","3")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  8.989899 - 10.000000
plot_diff(au.fem.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("3","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  0.000000 - 2.222222

The model that accounts for the influence of duree.ms. on the trajectories.

au.fem.f2.gam.dur <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(duree.ms., bs="cr") +
                              ti(measurement.no, duree.ms.) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=au.fem, method="ML")
summary.coefs(au.fem.f2.gam.dur)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1328.94      16.23  81.863   <2e-16 ***
## ton.ord2      -12.55      53.84  -0.233   0.8157    
## ton.ord3       51.30      26.61   1.928   0.0544 .  
## ton.ord4       37.07      18.49   2.004   0.0455 *  
## 
## Approximate significance of smooth terms:
##                                edf Ref.df      F  p-value    
## s(measurement.no)            4.348  5.314 23.431  < 2e-16 ***
## s(duree.ms.)                 1.001  1.002  6.013   0.0145 *  
## ti(measurement.no,duree.ms.) 8.917 11.250  4.971 1.08e-07 ***
## s(measurement.no):ton.ord2   3.165  3.913  2.851   0.0193 *  
## s(measurement.no):ton.ord3   1.003  1.005  5.069   0.0247 *  
## s(measurement.no):ton.ord4   1.001  1.002  0.276   0.5996

The plots with regard the durations.

plot_smooth(au.fem.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 170. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.fem.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 80. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(au.fem.f2.gam.dur, view=c("measurement.no","duree.ms."),
        ylim=quantile(au.fem$duree.ms., c(0.1, 0.9)))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; with 30 values ranging from 97.219130 to 204.993095. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

au.fem.f2.gam.f0 <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(f0, bs="cr") +
                              ti(measurement.no, f0) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=au.fem, method="ML")
summary.coefs(au.fem.f2.gam.f0)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1306.74      19.50  67.019   <2e-16 ***
## ton.ord2       57.97      58.31   0.994   0.3206    
## ton.ord3       78.41      34.58   2.267   0.0238 *  
## ton.ord4       57.03      23.21   2.457   0.0144 *  
## 
## Approximate significance of smooth terms:
##                              edf Ref.df      F  p-value    
## s(measurement.no)          4.315  5.286 21.591  < 2e-16 ***
## s(f0)                      5.489  6.519  4.799 6.23e-05 ***
## ti(measurement.no,f0)      1.128  1.242  0.208  0.81693    
## s(measurement.no):ton.ord2 3.704  4.561  3.412  0.00568 ** 
## s(measurement.no):ton.ord3 1.000  1.001  0.404  0.52539    
## s(measurement.no):ton.ord4 1.001  1.001  1.031  0.31041
plot_smooth(au.fem.f2.gam.f0, view="measurement.no", cond=list(f0=180),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.fem.f2.gam.f0, view="measurement.no", cond=list(f0=200),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.fem.f2.gam.f0, view="measurement.no", cond=list(f0=220),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 220. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.fem.f2.gam.f0, view="measurement.no", cond=list(f0=240),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 240. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.fem.f2.gam.f0, view="measurement.no", cond=list(f0=260),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 260. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(au.fem.f2.gam.f0, view=c("measurement.no","f0"),
        ylim=quantile(au.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 148.879493 to 290.377970. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

2.2.2.2 Central portion

The central portion:

au.central.fem.f2.gam.diff <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                        s(measurement.no, by=ton.ord, bs="cr",k=6),
                      data=au.central.fem, method="ML")
summary.coefs(au.central.fem.f2.gam.diff)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1276.24      15.67  81.426   <2e-16 ***
## ton.ord2     -114.80      51.98  -2.208   0.0279 *  
## ton.ord3       48.00      25.59   1.875   0.0616 .  
## ton.ord4       38.37      17.83   2.152   0.0321 *  
## 
## Approximate significance of smooth terms:
##                              edf Ref.df     F p-value    
## s(measurement.no)          2.801  3.387 7.081 7.2e-05 ***
## s(measurement.no):ton.ord2 1.001  1.003 0.307   0.580    
## s(measurement.no):ton.ord3 1.001  1.002 0.019   0.893    
## s(measurement.no):ton.ord4 1.001  1.002 0.147   0.702
plot_smooth(au.central.fem.f2.gam.diff, view="measurement.no",
            plot_all="ton.ord", rug=F)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(au.central.fem.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("1","2")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  4.424242 - 6.969697
plot_diff(au.central.fem.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","3")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  3.272727 - 8.000000
plot_diff(au.central.fem.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("3","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## Difference is not significant.
plot_diff(au.central.fem.f2.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 2.000000 to 8.000000.

## 
## measurement.no window(s) of significant difference(s):
##  3.454545 - 8.000000
au.central.fem.f2.gam.dur <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                              s(duree.ms., bs="cr",k=6) +
                              ti(measurement.no, duree.ms.,k=6) +
                              s(measurement.no, by=ton.ord, bs="cr",k=6),
                         data=au.central.fem, method="ML")
summary.coefs(au.central.fem.f2.gam.dur)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1282.40      14.45  88.740   <2e-16 ***
## ton.ord2      -91.07      48.32  -1.885   0.0603 .  
## ton.ord3       39.68      23.65   1.678   0.0942 .  
## ton.ord4       29.89      16.54   1.807   0.0717 .  
## 
## Approximate significance of smooth terms:
##                                edf Ref.df      F  p-value    
## s(measurement.no)            2.903  3.498  8.598 7.34e-06 ***
## s(duree.ms.)                 3.207  3.748 13.153  < 2e-16 ***
## ti(measurement.no,duree.ms.) 4.101  4.584  3.416  0.00422 ** 
## s(measurement.no):ton.ord2   1.001  1.001  0.147  0.70186    
## s(measurement.no):ton.ord3   1.000  1.001  0.206  0.65087    
## s(measurement.no):ton.ord4   1.000  1.001  0.621  0.43104
plot_smooth(au.central.fem.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 170. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.fem.f2.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 80. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(au.central.fem.f2.gam.dur, view=c("measurement.no","duree.ms."),
        ylim=quantile(au.central.fem$duree.ms., c(0.1, 0.9)))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * duree.ms. : numeric predictor; with 30 values ranging from 97.219130 to 204.993095. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

au.central.fem.f2.gam.f0 <- bam(f2 ~ ton.ord + s(measurement.no, bs="cr",k=6) +
                              s(f0, bs="cr",k=6) +
                              ti(measurement.no, f0,k=6) +
                              s(measurement.no, by=ton.ord, bs="cr",k=6),
                         data=au.central.fem, method="ML")
summary.coefs(au.central.fem.f2.gam.f0)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1252.48      19.43  64.458  < 2e-16 ***
## ton.ord2      -16.17      58.95  -0.274  0.78408    
## ton.ord3       95.71      33.35   2.869  0.00438 ** 
## ton.ord4       67.61      22.79   2.967  0.00323 ** 
## 
## Approximate significance of smooth terms:
##                              edf Ref.df     F  p-value    
## s(measurement.no)          2.824  3.414 7.533 3.79e-05 ***
## s(f0)                      4.509  4.883 3.847  0.00131 ** 
## ti(measurement.no,f0)      1.000  1.000 1.717  0.19101    
## s(measurement.no):ton.ord2 1.007  1.014 0.035  0.86410    
## s(measurement.no):ton.ord3 1.000  1.000 1.616  0.20448    
## s(measurement.no):ton.ord4 1.000  1.000 1.401  0.23747
plot_smooth(au.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=180),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=200),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=220),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 220. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=240),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 240. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(au.central.fem.f2.gam.f0, view="measurement.no", cond=list(f0=260),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; set to the value(s): 260. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(au.central.fem.f2.gam.f0, view=c("measurement.no","f0"),
        ylim=quantile(au.central.fem$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 2.000000 to 8.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 148.704236 to 283.580290. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

3 /ei/

The third one is diphthong /ei/.

ei$sexe<-as.factor(ei$sexe)
ei$ton<-as.factor(ei$ton)
ei$pow<-as.factor(ei$pow)
ei$contexte.D<-as.factor(ei$contexte.D)
ei$contexte.G<-as.factor(ei$contexte.G)

ei$f1<-as.numeric(ei$f1)
## Warning: NAs introduced by coercion
ei$f2<-as.numeric(ei$f2)
## Warning: NAs introduced by coercion
ei$f3<-as.numeric(ei$f3)
## Warning: NAs introduced by coercion
ei$f0<-as.numeric(ei$f0)
## Warning: NAs introduced by coercion
# Regroupement par les facteurs
ei.mas <- droplevels(subset(ei,sexe=="M"))
ei.fem <- droplevels(subset(ei,sexe=="F"))

3.1 Masculin

3.1.1 F1

Then the trajectories of f1 in different tones with regard of the sexes and the durations.

ggplot(ei.mas, aes(x=measurement.no, y=f1, group=numero,
                     alpha=duree.ms.)) +
  facet_grid(~ton) + geom_line()
## Warning: Removed 17 row(s) containing missing values (geom_path).

ggplot(ei.fem, aes(x=measurement.no, y=f1, group=numero,
                     alpha=duree.ms.)) +
  facet_grid(~ton) + geom_line()
## Warning: Removed 5 row(s) containing missing values (geom_path).

The basic model with the tone.

ei.mas$ton.ord <- as.ordered(ei.mas$ton)
contrasts(ei.mas$ton.ord) <- "contr.treatment"
ei.mas.gam.diff <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                        s(measurement.no, by=ton.ord, bs="cr"),
                      data=ei.mas, method="ML")
summary.coefs(ei.mas.gam.diff)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   382.24      21.92  17.440  < 2e-16 ***
## ton.ord2       15.28      26.52   0.576 0.564521    
## ton.ord3       80.97      23.54   3.439 0.000604 ***
## ton.ord4       96.06      24.49   3.922 9.27e-05 ***

Then the plots of predictions and difference smooth.

plot_smooth(ei.mas.gam.diff, view="measurement.no",
            plot_all="ton.ord", rug=F)
## Summary:
##  * ton.ord : factor; set to the value(s): 1, 2, 3, 4. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * NOTE : No random effects in the model to cancel.
## 

plot_diff(ei.mas.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("1","2")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## Difference is not significant.
plot_diff(ei.mas.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("2","3")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## measurement.no window(s) of significant difference(s):
##  0.505051 - 8.181818
plot_diff(ei.mas.gam.diff, view="measurement.no",
          comp=list(ton.ord=c("3","4")))
## Summary:
##  * measurement.no : numeric predictor; with 100 values ranging from 0.000000 to 10.000000.

## 
## Difference is not significant.

The model that accounts for the influence of duree.ms. on the trajectories.

ei.mas.gam.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(duree.ms., bs="cr") +
                              ti(measurement.no, duree.ms.) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=ei.mas, method="ML")
summary.coefs(ei.mas.gam.dur)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  383.014     22.572  16.969  < 2e-16 ***
## ton.ord2       2.031     27.687   0.073 0.941525    
## ton.ord3      90.245     24.282   3.717 0.000211 ***
## ton.ord4      85.518     25.448   3.361 0.000803 ***
## 
## Approximate significance of smooth terms:
##                                edf Ref.df     F p-value    
## s(measurement.no)            1.006  1.011 0.711  0.3988    
## s(duree.ms.)                 7.575  8.320 8.362  <2e-16 ***
## ti(measurement.no,duree.ms.) 5.104  6.914 2.222  0.0305 *  
## s(measurement.no):ton.ord2   2.143  2.663 0.964  0.3046    
## s(measurement.no):ton.ord3   1.471  1.798 0.207  0.7371    
## s(measurement.no):ton.ord4   1.005  1.010 1.189  0.2746

The plots with regard the durations.

plot_smooth(ei.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=170),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 3. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 170. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ei.mas.gam.dur, view="measurement.no", cond=list(duree.ms.=80),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 3. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; set to the value(s): 80. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ei.mas.gam.dur, view=c("measurement.no","duree.ms."),
        ylim=quantile(ei.mas$duree.ms., c(0.1, 0.9)))
## Summary:
##  * ton.ord : factor; set to the value(s): 3. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * duree.ms. : numeric predictor; with 30 values ranging from 69.653645 to 160.541647. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

The model with regard of f0.

ei.mas.gam.f0 <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(f0, bs="cr") +
                              ti(measurement.no, f0) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=ei.mas, method="ML")
summary.coefs(ei.mas.gam.f0)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   399.41      22.83  17.494  < 2e-16 ***
## ton.ord2       17.73      27.32   0.649 0.516427    
## ton.ord3       51.91      25.31   2.051 0.040519 *  
## ton.ord4       97.15      25.32   3.837 0.000131 ***
## 
## Approximate significance of smooth terms:
##                              edf Ref.df     F p-value    
## s(measurement.no)          1.002  1.003 1.014  0.3142    
## s(f0)                      5.427  6.335 7.715  <2e-16 ***
## ti(measurement.no,f0)      2.687  3.138 2.545  0.0699 .  
## s(measurement.no):ton.ord2 2.055  2.568 1.245  0.2285    
## s(measurement.no):ton.ord3 1.003  1.006 0.006  0.9567    
## s(measurement.no):ton.ord4 1.002  1.003 2.035  0.1536

The plot of such model.

plot_smooth(ei.mas.gam.f0, view="measurement.no", cond=list(f0=100),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 3. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 100. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ei.mas.gam.f0, view="measurement.no", cond=list(f0=120),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 3. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 120. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ei.mas.gam.f0, view="measurement.no", cond=list(f0=140),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 3. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 140. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ei.mas.gam.f0, view="measurement.no", cond=list(f0=180),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 3. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ei.mas.gam.f0, view="measurement.no", cond=list(f0=200),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 3. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ei.mas.gam.f0, view=c("measurement.no","f0"),
        ylim=quantile(ei.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 3. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 92.830073 to 209.388440. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

ei.mas.gam.f0.dur <- bam(f1 ~ ton.ord + s(measurement.no, bs="cr") +
                              s(f0, bs="cr") +
                              ti(measurement.no, f0) +
                              s(duree.ms., bs="cr") +
                              ti(measurement.no, duree.ms.) +
                              s(measurement.no, by=ton.ord, bs="cr"),
                         data=ei.mas, method="ML")
summary.coefs(ei.mas.gam.f0.dur)
## Parametric coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   391.24      23.22  16.853  < 2e-16 ***
## ton.ord2       15.12      28.39   0.532 0.594501    
## ton.ord3       70.49      25.83   2.729 0.006447 ** 
## ton.ord4       96.54      26.13   3.695 0.000231 ***
## 
## Approximate significance of smooth terms:
##                                edf Ref.df     F p-value    
## s(measurement.no)            1.002  1.004 2.001  0.1573    
## s(f0)                        5.595  6.509 7.350  <2e-16 ***
## ti(measurement.no,f0)        2.900  3.338 3.492  0.0267 *  
## s(duree.ms.)                 7.761  8.457 9.119  <2e-16 ***
## ti(measurement.no,duree.ms.) 5.515  7.444 1.983  0.0539 .  
## s(measurement.no):ton.ord2   2.300  2.862 2.052  0.0837 .  
## s(measurement.no):ton.ord3   1.003  1.006 0.099  0.7580    
## s(measurement.no):ton.ord4   1.002  1.003 1.069  0.3013
plot_smooth(ei.mas.gam.f0.dur, view="measurement.no", cond=list(f0=100),
            rug=F, col="red")
## Summary:
##  * ton.ord : factor; set to the value(s): 3. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 100. 
##  * duree.ms. : numeric predictor; set to the value(s): 106.033100625903. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ei.mas.gam.f0.dur, view="measurement.no", cond=list(f0=120),
            rug=F, col="orange", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 3. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 120. 
##  * duree.ms. : numeric predictor; set to the value(s): 106.033100625903. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ei.mas.gam.f0.dur, view="measurement.no", cond=list(f0=140),
            rug=F, col="yellow", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 3. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 140. 
##  * duree.ms. : numeric predictor; set to the value(s): 106.033100625903. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ei.mas.gam.f0.dur, view="measurement.no", cond=list(f0=180),
            rug=F, col="green", add=T)
## Summary:
##  * ton.ord : factor; set to the value(s): 3. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 180. 
##  * duree.ms. : numeric predictor; set to the value(s): 106.033100625903. 
##  * NOTE : No random effects in the model to cancel.
## 
plot_smooth(ei.mas.gam.f0.dur, view="measurement.no", cond=list(f0=200),
            rug=F, col="blue", add=T)

## Summary:
##  * ton.ord : factor; set to the value(s): 3. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; set to the value(s): 200. 
##  * duree.ms. : numeric predictor; set to the value(s): 106.033100625903. 
##  * NOTE : No random effects in the model to cancel.
## 
fvisgam(ei.mas.gam.f0.dur, view=c("measurement.no","f0"),
        ylim=quantile(ei.mas$f0, c(0.1, 0.9), na.rm=TRUE))
## Summary:
##  * ton.ord : factor; set to the value(s): 3. 
##  * measurement.no : numeric predictor; with 30 values ranging from 0.000000 to 10.000000. 
##  * f0 : numeric predictor; with 30 values ranging from 92.830073 to 209.388440. 
##  * duree.ms. : numeric predictor; set to the value(s): 106.033100625903. 
##  * NOTE : No random effects in the model to cancel.
## 
## Warning in gradientLegend(c(min.z, max.z), n.seg = 3, pos = 0.875, color =
## pal, : Increase right margin to fit labels or decrease the number of decimals,
## see help(gradientLegend).

4 Analysis

4.1 Factor duration

The influence of the factor duration is commun in all the diphthongs. All the diphthongs will be realized as more monophthongized with a brief duration.

4.2 Factor f0

The General influence of the factor of f0 on the f1 and f2 is as such:

f0 and f1 is a negative correlation.

f0 and f2 is a positive correlation.

However, this correlation is influenced by other factors and not on the same level within the different diphthongs.

In diphthong /ai/, the correlation between f0 and f1 is positive within the female data, which should be regarded after.